Following @adan_eslavo's idea on that topic, I would like to make a formal version of that proposal, with the detailed elements to facilitate its implementation and better expose its benefits.
Currently, the pool of City-States chosen during a game is randomized : the balance between different types of CStates is enforced by the system, but the CState themselves aren't. This has most notably been a problem with custom civs, who are forced to replace existing CStates with new ones quite often, which can cause compatibility problems with mods like Unique City-States.
I agree with adan_eslavo's solution, which I find quite elegant : a table with two columns (one CivilizationType, and one MinorCivilizationType) which simply make it so that, when a Civilization is present, all the MinorCivilizations associated with that Civilization in the table can't appear in the game.
Ex. : If Vietnam is present as a major civ, Hanoi can't be. Same for Canada or Louisiana and Quebec City.
This would also allow something interesting, which is to implement a far greater number of City-States in order to balance the number for each type (currently, there are about 2 times less Religious CStates than Maritime ones) without fearing compatibility problems with existing or future custom civ.
A modmod could even include CState versions of existing civilizations :
- Lutecia (Merchantile CS) when France isn't present
- Byzantium (Merchantile CS) when Byzantium or the Ottomans aren't present
- Bulawayo (Military CS) when the Zulus aren't present
- Edimburg (Cultural CS) when the Celts or Scotland aren't present
etc
I do think the idea in itself is quite simple (although I don't know if there is currently so kind of hard-coding possibly preventing such a thing to be realized), but would open the door to more variety in CStates and also prevent Major Civ / Minor Civ overlap.
Thanks for reading.
Currently, the pool of City-States chosen during a game is randomized : the balance between different types of CStates is enforced by the system, but the CState themselves aren't. This has most notably been a problem with custom civs, who are forced to replace existing CStates with new ones quite often, which can cause compatibility problems with mods like Unique City-States.
I agree with adan_eslavo's solution, which I find quite elegant : a table with two columns (one CivilizationType, and one MinorCivilizationType) which simply make it so that, when a Civilization is present, all the MinorCivilizations associated with that Civilization in the table can't appear in the game.
Ex. : If Vietnam is present as a major civ, Hanoi can't be. Same for Canada or Louisiana and Quebec City.
This would also allow something interesting, which is to implement a far greater number of City-States in order to balance the number for each type (currently, there are about 2 times less Religious CStates than Maritime ones) without fearing compatibility problems with existing or future custom civ.
A modmod could even include CState versions of existing civilizations :
- Lutecia (Merchantile CS) when France isn't present
- Byzantium (Merchantile CS) when Byzantium or the Ottomans aren't present
- Bulawayo (Military CS) when the Zulus aren't present
- Edimburg (Cultural CS) when the Celts or Scotland aren't present
etc
I do think the idea in itself is quite simple (although I don't know if there is currently so kind of hard-coding possibly preventing such a thing to be realized), but would open the door to more variety in CStates and also prevent Major Civ / Minor Civ overlap.
Thanks for reading.