Thanks for that explanation Leoreth! I'll try to change things there and see if everything works on the game itself.
Digging deeper in the code I stumbled upon another thing that I couldn't understand, if you have time to see this I thank you again:
Code:
if iPlayer in self.democraticNames:
if iPlayer in self.modernIslamNames and iReligion == con.iIslam:
self.setCivDesc(iPlayer, self.[COLOR="DarkRed"]democraticNames[/COLOR][iPlayer])
else:
self.setCivDesc(iPlayer, self.democraticNames[iPlayer])
return
Again, python is still a mystery to me, but this didn't seem right to me. The above code part is only read if the nation is democratic:
Code:
[COLOR="SeaGreen"]# Democracy (includes Islamic Republics)[/COLOR]
if self.isDemocratic(iPlayer): [I][COLOR="RoyalBlue"]This line comes before the code posted above (the one with the [COLOR="DarkRed"]red[/COLOR] text)[/I][/COLOR]
So it's checking if the nation is democratic, which in this revision means that the civ is either running Republic, or if it's running Autocracy, it'll be considered democratic if it's running either representation or egalitarianism together with autocracy. Any other combination triggers false.
Now that we are talking about a democratic civ, after all special cases, it checks if the civ has a name in the democraticNames list. With that returning ok, then it checks if the civ has a name in the modernIslamNames and if its state religion is Islam.
With all that being true, it then applies the civ's name in the democraticNames list if the nation passes the modernIslam and State Religion Islam trigger or not. That's what confuses me here.
Shouldn't the line applied for the last if-condition == TRUE be:
Code:
self.setCivDesc(iPlayer, self.modernIslamNames[iPlayer])
instead of self.democraticNames[iPlayer]? Or am I missing something here?
I checked this on DynamicCivs.py in my DoC 1.12 folder too and the code remains the same (I thought it could be an old solved issue, as I'm working on rev 707).