Inquisition

I don't know what's easier! :D How does your Inquisitor work?
 
Okay everyone, I have both versions of the Inquisition mod on my computer. I have attached both below in lieu of Bmanz' absence. I also have posted a comment in the download database directing people to this post.

Amra saves the day! Hip, hip ... hooray!

Thanks a lot for posting this.:goodjob:
 
I decided to publish both original versions of BMARNZ' Inquisition Mod updated to include my 6 Religious Unity prerequisites. :king:

There are now 6 Religious Unity prerequisites for achieving a Religious Victory
1. A player must have an official State Religion
2. A player must have the Holy City for the official State Religion
3. All of a player's cities must have the official state religion established.
4. All of a player's cities must not have any non-state religions established.
5. A player's religious influence must be at least 80 percent
6. A player must have built the official State Religion Shrine.

Both Inquision mod compositions are vastly improved by the update code and are included in one download that contains 2 zip files, one with limited religions, the other without.

You can also filnd the Inquisition Mod included in Orion's Challenge Mod, which has several other cool units and capabilities. Check it out:
http://forums.civfanatics.com/showthread.php?t=256588

Enjoy,

Orion Veteran :cool:
 

Attachments

  • Inquisition Both Versions.zip
    333.6 KB · Views: 80
Excellent, Orion Veteran, thanks for keeping this mod alive!

One more request of any still frequenting this thread ... last year Bmarnz posted some files to make the Inquisitor work with a state atheism civic, which I've also just added to HephMod. Does anyone still have this file (atheism.rar) and want to post it for me? Pretty please ... :(

Heph
 
Excellent, Orion Veteran, thanks for keeping this mod alive!

After BMARNZ left, I just could not allow this mod to remain unfinished. So, I was determined to find a way to add the Religious Unity prerequisites to this outstanding mod composition. It took 8 months to find the help I needed and finish the code. STO gave me a lot of help in recent weeks to debug and get the update to work the right. I think the long wait was well worth the effort.

If anyone finds any bugs in either version, please let me know and I will attempt to fix them.

Orion Veteran :cool:
 
I also really think that there should be some consequence to Inquisitor persecution other than ticking off other civs, like causing temporary unhappiness in the city the way conscription or hurrying production by sacrificing population does, or even making a persecution effort cost population too (after all, "forced conversion" usually also involves weeding out the "stubborn")!

Unfortunately, I'm python-impaired ... could anyone tell me how to do this? Reworking the code the game already uses for hurrying production seems like it C O U L D be easy, say: lose one population, causes 3 unhappiness for 10 turns?

I added this:

Code:
# City loses population, people get angry
			pCity.changePopulation(-1)
			pCity.changeHurryAngerTimer(10)

It works -- city loses one population and gets one angry person hollering, "We cannot forget your cruel oppression!" I like that much, but I don't know how to increase the amount of anger or make an anger timer independent of the "hurry" function. Increasing amount of population killed has no effect on the amount of anger generated either.

Any thoughts?
 
I also really think that there should be some consequence to Inquisitor persecution other than ticking off other civs, like causing temporary unhappiness in the city the way conscription or hurrying production by sacrificing population does, or even making a persecution effort cost population too (after all, "forced conversion" usually also involves weeding out the "stubborn")!

Unfortunately, I'm python-impaired ... could anyone tell me how to do this? Reworking the code the game already uses for hurrying production seems like it C O U L D be easy, say: lose one population, causes 3 unhappiness for 10 turns?

I added this:

Code:
# City loses population, people get angry
			pCity.changePopulation(-1)
			pCity.changeHurryAngerTimer(10)

It works -- city loses one population and gets one angry person hollering, "We cannot forget your cruel oppression!" I like that much, but I don't know how to increase the amount of anger or make an anger timer independent of the "hurry" function. Increasing amount of population killed has no effect on the amount of anger generated either.

Any thoughts?

I believe a quick historical look at the purpose of an inquisition will give us the answer.

The objective of conducting an inquisition trial was to combat heresy by discovering and punishing a non-believer. If the individual refused to confess, he or she would be burned at the stake. A 1578 handbook for inquisitors spelled out the purpose of inquisitorial penalties:

Translation from the Latin: "... for punishment does not take place primarily and per se for the correction and good of the person punished, but for the public good in order that others may become terrified and weaned away from the evils they would commit."

One person or heretic, put on trial, is not a large segment of the population. In game terms, one population represents a huge number of people. The public execution of a heretic burned at the stake, would instill fear in the rest of the population. By punishing heresy, with the death penalty, the rest of the city population were encouraged to be obedient to the official church doctrine. City unrest can occur when you have a competing religion in the city. The objective of the inquisitor is to purify the faith by eliminating any competing religions. Thus, religious unity actually discourages city unrest.

If after an inquisition, there is only "Religious Unity" in a city (i.e. only the state religion exists), then the only people who would become angry, would be the Civ, whose official state religion was purged from your city.

However, in game terms, removing the non-state religious buildings when purging the city is actually a penalty to the player. If you remove religions from your city, you should no longer get the benefits that the non-state religious buildings provided. Secondly, you must produce several Inquisitors to conduct inquisitions in all of the cities with non-state religions. This is not cheap, as you could be producing other units or buildings. The prerequisites for a religious (unity) victory have made it more difficult to achieve, as it will take time and likely some war mongering.

In conclusion, I must disagree with lowering the population and increasing unhappiness, as Religious unity is the like minded, almost finatical, belief in the official state religion. Universal Religious unity should not be not punished, rather it should be rewarded with a victory.

Very Respectfully,


Orion Veteran :cool:
 
@Orion:

Thank you for your learned opinion, though I think you both overestimate the effectiveness of Inquisition and underestimate its wide-reaching secondary effects.

First, an inquisitor unit in the context of the game cannot represent just the effect of ongoing "example" trials that discourage the practice of non-state religions, but rather a conscious widespread targeting of a "contaminated" region, such as was implemented in the defeated Granada kingdom in Spain against Jews and Muslims or the Albigensians in southern France. These are not "example" trials, but widespread efforts that resulted in the deaths and displacement of large numbers of people. While religious unity was accomplished in Spain (for example) IN THE END, which, I agree, made society on the whole more harmonious, in the SHORT TERM it resulted in a lot of economic damage and grumbling among the population, who did not all want to see their business partners and neighbors run out of town or executed.

Second, inquisitions have a lot of secondary effects. They actually create violence-prone environments where people take it UPON THEMSELVES to enforce what they perceive to be the intentions of the inquisition. This results in mob violence against heretics and non-believers both perceived and real, which I see as a form of unrest.

The way you characterize the Inquisitor, representing simply the ongoing process of Inquisition that discourages non-state religions with a burning here or there, I don't see how it could then have the effect of removing non-state religions, so I assume that the Inquisitor unit MUST represent a larger scale effort. In order to achieve religious unity, the vast majority of the members of the non-state religion that do not convert would have to be purged, whether killed or exiled (as Jews often were), and this means a loss of population. For example, when England expelled its Jews in 1290, thousands of Jews (sources differ, anywhere between 4 and 16,000) were forced out of the country (=population loss); when Phillip IV of France expelled his Jews in 1306, MANY more than this were forced out of the country. While I realize that this is not 1 Civ population point, which is more like 100,000 people (IIRC?), it's still, to my mind, a significant portion of a population economically speaking. All I'm saying is that inquisition is by no means a "clean" process, and never results in the conversion of everyone -- in any significant inquisition, those who don't convert have to go somewhere (die or leave) for there to be religious unity. For my mod, religious unity comes at a price (more than just the loss of culture benefits from religious buildings).

Also in my mod, non-state religions cause unhappiness as the norm, so removing them is desirable for the player in order to rid himself of this unhappiness. What I want to do, however, is make the player have to choose his time properly -- do I take short term unhappiness now (and the population loss) for long term happiness (and possible Religious victory, if I implement this)?

Anyway, in the end I just want to know how to program the code! :lol: Different mods for different folks, I always say.

Respectfully,
Heph
 
... in my mod, non-state religions cause unhappiness as the norm, so removing them is desirable for the player in order to rid himself of this unhappiness. What I want to do, however, is make the player have to choose his time properly -- do I take short term unhappiness now (and the population loss) for long term happiness (and possible Religious victory, if I implement this)?

Anyway, in the end I just want to know how to program the code! :lol: Different mods for different folks, I always say.

Respectfully,
Heph

A few thoughts:

1. When you say, "non-state religions cause unhappiness as the norm," I agree; only when both a non-state and the official state religion exist in the same city. The game won't allow you to conduct an inquisition, unless you meet the prerequisite of establishing the state religion in the city first. Spreading the official state religion is the role of the Missionary.

2. Assuming you code the game to create unrest when you have a competing religion or religions in a city, then the timing for the unrest must be put off until you have researched Theology. That is when the Inquisitor becomes available to combat heresy and the city population size must be greater than the number of unhappy faces you create for the unrest. For example: One unhappy face for every 4 in population. That is a lot of unrest, which can really stymie city production, not to mention what it would do during war.

3. After Theology is discovered, a possible working scenario would be: 10 turns go by, then 3 turns of unrest. Another 10 turns go by, and then another 3 turns of unrest. This gives the player notice of a heresy problem that has to be dealt with by conducting an inquisition. This would definitely have to be play tested to insure the unrest penalty is not to high, as it would be if you imposed a population loss.

4. Next, you would want to impose this unrest penalty only on Organized Religion and Theocracy civics.

5. For every penalty imposed, there should be a corrosponding benefit, as an offset. A good example is the shrine benefit should increase for CIVs that have purged all non-state religions, but their religious influence has not yet achieved 80 percent for a religious victory. Perhaps an additional 25 gold per turn.

6. The hardest part is figuring out the python code to do all these additional things. If you don't mind me asking, where did you place the unrest code, what PY file and which function? As it stands now, the Inquisition Mod seems to be balanced and plays very well. I would love to see Firaxis include this Mod in their official version.

Very Respectfully,

Orion Veteran :cool:
 
A few thoughts:

2. Assuming you code the game to create unrest when you have a competing religion or religions in a city, then the timing for the unrest must be put off until you have researched Theology. That is when the Inquisitor becomes available to combat heresy and the city population size must be greater than the number of unhappy faces you create for the unrest. For example: One unhappy face for every 4 in population. That is a lot of unrest, which can really stymie city production, not to mention what it would do during war.

In HephMod, non-state religions cause a blanket -2 happiness per non-state religion in a city. I've also created a spread rate progression over time: early religions, being more localized and less missionary in nature, spread less quickly, "classical" religions a bit more so (but less than vanilla) and medieval religions at the normal vanilla rate. I like the extra challenge this unhappiness causes, and have found that it does not become overwhelming (this has been a long standing feature of HephMod, which has never included inquisitors).

4. Next, you would want to impose this unrest penalty only on Organized Religion and Theocracy civics.

I actually like having this penalty work when under paganism, where the player has no state religion, as confessional religions tend to pressure and agitate against pagan societies to make them conform to their own beliefs.

5. For every penalty imposed, there should be a corrosponding benefit, as an offset. A good example is the shrine benefit should increase for CIVs that have purged all non-state religions, but their religious influence has not yet achieved 80 percent for a religious victory. Perhaps an additional 25 gold per turn.

I think religions already have plenty of bennies, and I'm beefing them up in my mod with special units, promotions and increased local and global shrine effects. You're right that that doesn't give any special benefit to civs that are religiously unified, other than that they don't have any cities with unhappiness penalties for non-state religions and they are not vulnerable to espionage the way that civs who have foreign state religions in their cities are.

6. The hardest part is figuring out the python code to do all these additional things. If you don't mind me asking, where did you place the unrest code, what PY file and which function? As it stands now, the Inquisition Mod seems to be balanced and plays very well. I would love to see Firaxis include this Mod in their official version.

Indeed! Here's the code as it stands in CvEventManager:

Code:
# Add player's state religion
			if ( gc.getPlayer( pUnit.getOwner( ) ).getStateReligion( ) != -1 ):
				iStateReligion = gc.getPlayer( pUnit.getOwner( ) ).getStateReligion( )
				pCity.setHasReligion( iStateReligion, 1, 0, 0 )

			# City loses population, people get angry
			pCity.changePopulation(-1)
			pCity.changeHurryAngerTimer(10)

			# Persecution succeeds
			CyInterface().addMessage(iPlayer,False,25,CyTranslator().getText("TXT_KEY_MESSAGE_INQUISITION",(pCity.getName(),)),"AS2D_PLAGUE",InterfaceMessageTypes.MESSAGE_TYPE_INFO,pUnit.getButton(),ColorTypes(8),pCity.getX(),pCity.getY(),True,True)

I'm also thinking of implementing an effect similar to pillaging gold when you conquer a city, since the kind of purge inquisition I'm talking about was always accompanied by confiscation of property of the evicted (in all of the examples I mentioned in my previous post, this was the case). This would also have a balancing effect on the negative consequences you've pointed out.

Thanks a lot for your input,
Heph

EDIT: Well, I got the amount of unhappiness I wanted by changing pcity.changeHurryAngerTimer to pcity.changeConscriptionAngerTimer! This at least accomplishes what I want, though it just ties the unhappiness variable to another variable set in the game, definitely a disadvantage. I wanted -3 happiness for 10 turns, though, because of the short term/long term solution dilemma issue. I'd still like to implement a pillage effect, though.
 
...Both Inquision mod compositions are vastly improved by the update code and are included in one download that contains 2 zip files, one with limited religions, the other without. ...

Enjoy,

Orion Veteran :cool:

Hi Orion,

Glad to see that someone is still improving this mod. How exactly is this new code vastly improved? I mean, does the Inquisitor work differently now, are there different requirements or what? :)
 
Hi Orion,

Glad to see that someone is still improving this mod. How exactly is this new code vastly improved? I mean, does the Inquisitor work differently now, are there different requirements or what? :)

The improvement is in what is required to achieve a religious victory.

The original version from BMarnz had only one requirement: 75% Religious influence. That's it! IMO this requirement alone just didn't cut it, as it was too easy to achieve the victory and you could win without achieving Religious Unity in every city.

The new version now has 6 prerequisites for achiving a Religious Victory.
1. A player must have an official State Religion
2. A player must have the Holy City for the official State Religion
3. All of a player's cities must have the official state religion established.
4. All of a player's cities must not have any non-state religions established.
5. Religious influence must be at least 80%
6. A player must have built the official State Religion Shrine.

These 6 prerequisites insure religious unity is achieved and make this mod significanly better in every way. It was 8 months from concept to reality and I wish to express my special thanks to STO, who made it all possible. :goodjob:

Enjoy,

Orion Veteran :cool:
 
Indeed! Here's the code as it stands in CvEventManager:

Code:
# Add player's state religion
			if ( gc.getPlayer( pUnit.getOwner( ) ).getStateReligion( ) != -1 ):
				iStateReligion = gc.getPlayer( pUnit.getOwner( ) ).getStateReligion( )
				pCity.setHasReligion( iStateReligion, 1, 0, 0 )

			# City loses population, people get angry
			pCity.changePopulation(-1)
			pCity.changeHurryAngerTimer(10)

			# Persecution succeeds
			CyInterface().addMessage(iPlayer,False,25,CyTranslator().getText("TXT_KEY_MESSAGE_INQUISITION",(pCity.getName(),)),"AS2D_PLAGUE",InterfaceMessageTypes.MESSAGE_TYPE_INFO,pUnit.getButton(),ColorTypes(8),pCity.getX(),pCity.getY(),True,True)

You might want to try this:

Code:
def FunctionName(self, argsList):			
	iPlayer = argsList		
	pPlayer = gc.getPlayer(iPlayer)			
	iStateReligion = pPlayer.getStateReligion()		
			
	if iStateReligion != -1 :
		for pyCity in PyHelpers.PyPlayer(iPlayer).getCityList() :
			bCompetingReligion = False 
			bStateReligion = False 
			for iReligionLoop in range(gc.getNumReligionInfos()):
				if iReligionLoop == iStateReligion :
					if pyCity.hasReligion(iReligionLoop) :
						# City has the official state religion
						bStateReligion = True 
				elif pyCity.hasReligion(iReligionLoop) :
					# City has a non-state religion
					bCompetingReligion = True 
			if bCompetingReligion == 1 and bStateReligion == 1 :
				# City loses population, people get angry
				pCity.changePopulation(-1)
				pCity.changeHurryAngerTimer(10)
				# Persecution succeeds
				CyInterface().addMessage(iPlayer,False,25,CyTranslator().getText("TXT_KEY_MESSAGE_INQUISITION",(pCity.getName(),)),"AS2D_PLAGUE",InterfaceMessageTypes.MESSAGE_TYPE_INFO,pUnit.getButton(),ColorTypes(8),pCity.getX(),pCity.getY(),True,True)

Orion Veteran :cool:
 
@OrionVeteran:

Thanks for the suggestion.

On another note, I've run into an issue playtesting the integration of this mod with HephMod. Late in the game I started getting this Python error:

"CvGameUtils" line 451 doInquisitorCore_AI
unidentifiable C++ exception

I looked up line 451 and it's this:

Code:
#Checks religion percents
		lReligions = [ ]
		bestReligionPercent = 0
		iBestReligion = -1
		for iReligionLoop in range(gc.getNumReligionInfos( )):
			iReligionLevel = gc.getGame().calculateReligionPercent(iReligionLoop)
			if iReligionLevel > gc.getGame().calculateReligionPercent(iStateReligion):
				lReligions.append( iReligionLoop )
			if (iReligionLoop != iStateReligion):
				[COLOR="Red"]religionPercent = gc.getGame().calculateReligionPercent(iReligionLoop)[/COLOR]
				if (religionPercent > bestReligionPercent):
					bestReligionPercent = religionPercent
					iBestReligion = iReligionLoop

Any ideas what the problem could be here? Have you run into this before? I'm also running Revolution mod if that's any help.
 
Are there any restrictions as to when an Inquisitor can be used? I think Inquisitors should only be buildable (and perform the Inquisition) under Theocracy and Organized Religion. I'm not sure if this is the case under the 'old' Inquisition mod...
 
Are there any restrictions as to when an Inquisitor can be used?

There are two requirements which limit when an inquisitor can be used:

1. You can't conduct an inquisition trial in a city where your religion does not exist. The city must have the official state religion previously established, either by use of a missionary or by the AI.

2. There must be at least one non-state religion in the city. You can't conduct an inquisition trial if there are no heretic religions.

I think Inquisitors should only be buildable (and perform the Inquisition) under Theocracy and Organized Religion. I'm not sure if this is the case under the 'old' Inquisition mod...

I agree. Yet there is no XML tag to make a unit dependent upon a Civic. It would not make much sense for Civs with Pacificism or Free Religion to build an Inquisitor. Like any other unit or building, you have a choice to build it or not based upon your strategy and need. If you don't need it, don't build it.

Orion Veteran :cool:
 
Are there any restrictions as to when an Inquisitor can be used? I think Inquisitors should only be buildable (and perform the Inquisition) under Theocracy and Organized Religion. I'm not sure if this is the case under the 'old' Inquisition mod...

I agree. Yet there is no XML tag to make a unit dependent upon a Civic. It would not make much sense for Civs with Pacificism or Free Religion to build an Inquisitor. Like any other unit or building, you have a choice to build it or not based upon your strategy and need. If you don't need it, don't build it.

You can, however, code the Python not to allow you to build the unit when you have certain civics. In CvGameUtils:

Code:
def cannotTrain(self,argsList):
		pCity = argsList[0]
		eUnit = argsList[1]
		bContinue = argsList[2]
		bTestVisible = argsList[3]
		bIgnoreCost = argsList[4]
		bIgnoreUpgrades = argsList[5]
		ePlayer = pCity.getOwner()
		pPlayer = gc.getPlayer(ePlayer)

		if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_RELIGION')) == gc.getInfoTypeForString('CIVIC_PACIFISM'):
			if eUnit == gc.getInfoTypeForString('UNIT_INQUISITOR'):
				return True
		if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_RELIGION')) == gc.getInfoTypeForString('CIVIC_FREE_RELIGION'):
			if eUnit == gc.getInfoTypeForString('UNIT_INQUISITOR'):
				return True
		return False

Note that to use this function you also have to enable it (def cannotTrain) in PythonCallbackDefines.xml, which you can include in your "Assets" folder.
 
Hephaistion,

Sounds like a problem with the call to the DLL file. Try downloading Orion's Challenge Mod and see if you get the same error. I'm using a DLL file from Dale's Combat Mod. If you no longer get the error, then the DLL file from your other mod is the problem.

Thanks! I will check this out. Revolution mod does use a custom DLL.
 
Top Bottom