Afforess
The White Wizard
This ModComp is no longer officially supported by me. Anyone who wants it should use it, as the feature is available in several excellent mods, such as Better BUG AI, and Better BTS AI.
For those interested, the old page is here:
This modcomp allows humans to capitulate or become vassals of the AI. It may not be the most useful tool immediately, but in a losing war, it is a way to save face...and cities.
If you don't fully understand vassalage as it is in Warlords, please read this article.
Almost any combination of Masters and Vassals are possible, except for loops. The game will not let you be a Master of Lincoln, Lincoln your vassal and Master of Louis XIV, and Louis XIV the Vassal of Lincoln and the Master of you. The game breaks this up by setting Lincoln free.
Made for BTS 3.19. This modcomp is meant for merging only.
There is no download for this modcomp, as it would just be one file, and even that file would only have one line changed. Why bother?
If you want to add this to your SDK follow these instructions:
Open "CvPlayer.cpp" and Search for (Control - F) this line:
and change it to:
I left part of the original code intact, because otherwise, vassals could have multiple masters. If you want vassals to be able to have multiple masters, changes this line:
to this one:
Understanding the new vassalage system:
Screenshots:



Have fun, and enjoy.
For those interested, the old page is here:
Spoiler :
This modcomp allows humans to capitulate or become vassals of the AI. It may not be the most useful tool immediately, but in a losing war, it is a way to save face...and cities.
If you don't fully understand vassalage as it is in Warlords, please read this article.
Almost any combination of Masters and Vassals are possible, except for loops. The game will not let you be a Master of Lincoln, Lincoln your vassal and Master of Louis XIV, and Louis XIV the Vassal of Lincoln and the Master of you. The game breaks this up by setting Lincoln free.
Made for BTS 3.19. This modcomp is meant for merging only.
There is no download for this modcomp, as it would just be one file, and even that file would only have one line changed. Why bother?
If you want to add this to your SDK follow these instructions:
Spoiler :
Open "CvPlayer.cpp" and Search for (Control - F) this line:
Code:
if (!isHuman() || GET_PLAYER(eWhoTo).isHuman()) [COLOR=SeaGreen]// human can't be vassal of AI[/COLOR]
{
CvTeam& kVassalTeam = GET_TEAM(getTeam());
CvTeam& kMasterTeam = GET_TEAM(GET_PLAYER(eWhoTo).getTeam());
if (kMasterTeam.isVassalStateTrading()) [COLOR=SeaGreen]// the master must possess the tech[/COLOR]
{
if (!kVassalTeam.isAVassal() && !kMasterTeam.isAVassal() && getTeam() != GET_PLAYER(eWhoTo).getTeam())
{
Code:
/*************************************************************************************************/
/** Afforess Realistic Diplomacy 08/12/09 */
/** */
/** */
/*************************************************************************************************/
[COLOR=SeaGreen] //if (!isHuman() || GET_PLAYER(eWhoTo).isHuman()) // human can't be vassal of AI (OLD CODE)[/COLOR]
if (getTeam() != GET_PLAYER(eWhoTo).getTeam()) [COLOR=SeaGreen]//Human can be vassal of AI[/COLOR]
{
CvTeam& kVassalTeam = GET_TEAM(getTeam());
CvTeam& kMasterTeam = GET_TEAM(GET_PLAYER(eWhoTo).getTeam());
if (kMasterTeam.isVassalStateTrading())[COLOR=SeaGreen] // the master must possess the tech[/COLOR]
{
[COLOR=SeaGreen] [COLOR=black] if(!kVassalTeam.isAVassal() && [/COLOR]/*!kMasterTeam.isAVassal() && */[COLOR=black]getTeam() != GET_PLAYER(eWhoTo).getTeam())[/COLOR] //vassal may not be a master (OLD CODE)[/COLOR]
{
/*************************************************************************************************/
/** Afforess Realistic Diplomacy END */
/*************************************************************************************************/
I left part of the original code intact, because otherwise, vassals could have multiple masters. If you want vassals to be able to have multiple masters, changes this line:
Code:
[COLOR=SeaGreen] [COLOR=black] if(!kVassalTeam.isAVassal() && [/COLOR]/*!kMasterTeam.isAVassal() && */[COLOR=black]getTeam() != GET_PLAYER(eWhoTo).getTeam())[/COLOR] //vassal may not be a master (OLD CODE)[/COLOR]
to this one:
Code:
[COLOR=SeaGreen]// [COLOR=black] [COLOR=SeaGreen] if(!kVassalTeam.isAVassal() && [/COLOR][/COLOR]!kMasterTeam.isAVassal() && [COLOR=SeaGreen]getTeam() != GET_PLAYER(eWhoTo).getTeam())[/COLOR] //vassal may not be a master (OLD CODE)[/COLOR]
Understanding the new vassalage system:
- If my vassal has his/her own vassal, do they count as my vassal as well?
- Indirectly. You can't make demands like you can with your own vassals, but if you enter a war, they will join it with you.
- If my vassal has his/her own vassal, do they count for my total score?
- Yes, but not as much as a regular vassal does. Your own vassals add 50% of their score to yours. This means indirect vassals would add 25% of their score to their master, and 25% to their master's Master.
Screenshots:



Have fun, and enjoy.