Stopping "evil" terrain spread

BillSeurer

Warlord
Joined
Oct 28, 2007
Messages
114
If Hyborem enters the world and the AC hits a certain level (50?) the evil terrain starts spreading out. Or is it just the AC? Anyway, you can undo it temporarily with that one spell but if you push the AC back will the terrain stop spreading again or is it permanent at that point?
 
Code:
	def doHellTerrain(self):
		iAshenVeil = gc.getInfoTypeForString('RELIGION_THE_ASHEN_VEIL')
		iBurningSands = gc.getInfoTypeForString('TERRAIN_BURNING_SANDS')
		iBanana = gc.getInfoTypeForString('BONUS_BANANA')
		iCotton = gc.getInfoTypeForString('BONUS_COTTON')
		iCorn = gc.getInfoTypeForString('BONUS_CORN')
		iCow = gc.getInfoTypeForString('BONUS_COW')
		iEvil = gc.getInfoTypeForString('ALIGNMENT_EVIL')
		iFarm = gc.getInfoTypeForString('IMPROVEMENT_FARM')
		iFlames = gc.getInfoTypeForString('FEATURE_FLAMES')
		iFlamesSpreadChance = gc.getDefineINT('FLAMES_SPREAD_CHANCE')
		iGulagarm = gc.getInfoTypeForString('BONUS_GULAGARM')
		iHorse = gc.getInfoTypeForString('BONUS_HORSE')
		iInfernal = gc.getInfoTypeForString('CIVILIZATION_INFERNAL')
		iMarble = gc.getInfoTypeForString('BONUS_MARBLE')
		iNeutral = gc.getInfoTypeForString('ALIGNMENT_NEUTRAL')
		iNightmare = gc.getInfoTypeForString('BONUS_NIGHTMARE')
		iPig = gc.getInfoTypeForString('BONUS_PIG')
		iRazorweed = gc.getInfoTypeForString('BONUS_RAZORWEED')
		iRice = gc.getInfoTypeForString('BONUS_RICE')
		iSheep = gc.getInfoTypeForString('BONUS_SHEEP')
		iSheutStone = gc.getInfoTypeForString('BONUS_SHEUT_STONE')
		iSilk = gc.getInfoTypeForString('BONUS_SILK')
		iSnakePillar = gc.getInfoTypeForString('IMPROVEMENT_SNAKE_PILLAR')
		iSugar = gc.getInfoTypeForString('BONUS_SUGAR')
		iToad = gc.getInfoTypeForString('BONUS_TOAD')
		iWheat = gc.getInfoTypeForString('BONUS_WHEAT')
		iCount = CyGame().getGlobalCounter()
		for i in range (CyMap().numPlots()):
			pPlot = CyMap().plotByIndex(i)
			iFeature = pPlot.getFeatureType()
			iTerrain = pPlot.getTerrainType()
			iBonus = pPlot.getBonusType(-1)
			iImprovement = pPlot.getImprovementType()
			bUntouched = true
			if pPlot.isOwned():
				pPlayer = gc.getPlayer(pPlot.getOwner())
				iAlignment = pPlayer.getAlignment()
				if pPlayer.getCivilizationType() == iInfernal:
					pPlot.changePlotCounter(100)
					bUntouched = false
				if (bUntouched and pPlayer.getStateReligion() == iAshenVeil or (iCount >= 50 and iAlignment == iEvil) or (iCount >= 75 and iAlignment == iNeutral)):
					iX = pPlot.getX()
					iY = pPlot.getY()
					for iiX in range(iX-1, iX+2, 1):
						for iiY in range(iY-1, iY+2, 1):
							pAdjacentPlot = CyMap().plot(iiX,iiY)
							if pAdjacentPlot.isNone() == False:
								if pAdjacentPlot.getPlotCounter() > 10:
									pPlot.changePlotCounter(1)
									bUntouched = false
			if (bUntouched and pPlot.isOwned() == false and iCount > 25):
				iX = pPlot.getX()
				iY = pPlot.getY()
				for iiX in range(iX-1, iX+2, 1):
					for iiY in range(iY-1, iY+2, 1):
						pAdjacentPlot = CyMap().plot(iiX,iiY)
						if pAdjacentPlot.isNone() == False:
							if pAdjacentPlot.getPlotCounter() > 10:
								pPlot.changePlotCounter(1)
								bUntouched = false
			iPlotCount = pPlot.getPlotCounter()
			if (bUntouched and iPlotCount > 0):
				pPlot.changePlotCounter(-1)
			if iPlotCount > 9:
				if (iBonus == iSheep or iBonus == iPig):
					pPlot.setBonusType(iToad)
				if (iBonus == iHorse or iBonus == iCow):
					pPlot.setBonusType(iNightmare)
				if (iBonus == iCotton or iBonus == iSilk):
					pPlot.setBonusType(iRazorweed)
				if (iBonus == iBanana or iBonus == iSugar):
					pPlot.setBonusType(iGulagarm)
				if (iBonus == iMarble):
					pPlot.setBonusType(iSheutStone)
				if (iBonus == iCorn or iBonus == iRice or iBonus == iWheat):
					pPlot.setBonusType(-1)
					pPlot.setImprovementType(iSnakePillar)
			if iPlotCount < 10:
				if iBonus == iToad:
					if CyGame().getSorenRandNum(100, "Hell Convert") < 50:
						pPlot.setBonusType(iSheep)
					else:
						pPlot.setBonusType(iPig)
				if iBonus == iNightmare:
					if CyGame().getSorenRandNum(100, "Hell Convert") < 50:
						pPlot.setBonusType(iHorse)
					else:
						pPlot.setBonusType(iCow)
				if iBonus == iRazorweed:
					if CyGame().getSorenRandNum(100, "Hell Convert") < 50:
						pPlot.setBonusType(iCotton)
					else:
						pPlot.setBonusType(iSilk)
				if iBonus == iGulagarm:
					if CyGame().getSorenRandNum(100, "Hell Convert") < 50:
						pPlot.setBonusType(iBanana)
					else:
						pPlot.setBonusType(iSugar)
				if (iBonus == iSheutStone):
					pPlot.setBonusType(iMarble)
				if iImprovement == iSnakePillar:
					pPlot.setImprovementType(iFarm)
					iCount = CyGame().getSorenRandNum(100, "Hell Convert")
					if  iCount < 33:
						pPlot.setBonusType(iCorn)
					else:
						if iCount < 66:
							pPlot.setBonusType(iRice)
						else:
							pPlot.setBonusType(iWheat)
			if iTerrain == iBurningSands:
				if pPlot.isCity() == False:
					if pPlot.isPeak() == False:
						if CyGame().getSorenRandNum(100, "Flames") <= iFlamesSpreadChance:
							pPlot.setFeatureType(iFlames, 0)


Hell terrain is only a manifestation of a plot counter of 10 or more. Tiles that border plots with a counter of 10 or more have their counters increased by 1 per turn, and those not bordering such plots have their counters reduced. All Infernal territory has a 100 plot counter, which is the way hell normally starts, but the entropy node flare event also sets its tile's counter to 100 and can cause hell to spread. The ability to spread into on different lands is limited by the AC. If you can sanctify the whole world then you can get rid of hell terrain once and for all (assuming Hyborem isn't present, and an entropy node doesn't flare up), but that is hard to do.
 
I tried having adepts running around casting the spell but that got old after 20 or 30 turns. I guess the moral is stop it from getting started.

There's no way to sanctify the whole world at once is there?
 
Not unless you count having life 1 arcane units/Elohim Devouts on every third tile on the map all cast Sanctify in the same turn.

Of course, if you get the AC low enough and wipe out Hyborem then it will eventually go away on its own.
 
You forgot to mention that Wonder can also create Hell Terrain.

A ritual to cleanse the entire world of Hell Terrain could be a pretty nice one to generate. Require that Infernals did exist, but no longer do for someone to begin creating it, make it bloody expensive, and a 1 shot deal (then if someone causes new Hell by Wonder or Flare, you have to go back to the old way of cleansing it). Alternatively, just make it bloody expensive, repeatable, and have no effect on Infernal owned Territory (or even link it to the AC so that it only cleanses territory in which the AC level will not naturally spread it + Neutral)
 
I concur, an expensive, 1 time only ritual that sets all plot counters to 0 would be great. Actually, I'm not sure it is important that it require the Infernals be vanquished or even exempt Infernal territory at all, as it would revert back at the start of the next turn. This seems like the kind of thing that should be very expensive, but faster with good mana types. Righteousness seems like the appropriate prereq.
 
Require infernal vanquished is so that the Infernal (or allies, or ignorant players) themselves cannot build it to keep the world from being easily cleansed in the future. Thus is something "required" if the ritual is not repeatable.
 
Require infernal vanquished is so that the Infernal (or allies, or ignorant players) themselves cannot build it to keep the world from being easily cleansed in the future. Thus is something "required" if the ritual is not repeatable.

You could make the ritual require Hyborem's weapon (I forget what it's called) and then that weapon is destroyed in the making.
 
You could make the ritual require Hyborem's weapon (I forget what it's called) and then that weapon is destroyed in the making.

That would make the whole idea of the ritual nearly pointless. If you've gotten the weapon, then you've destroyed Hyborem, seized his capital, and destroyed his civilization. Cleansing the rest of the world of hell terrain wouldn't be difficult to do.
 
Unless it's spread into the sea. You have to keep adepts on watch for rest of the game as it will keep coming back.
In my experience, anyways. Also likes to hide in mountains and ponds where you can't see it.
 
Yes, the main point of the ritual idea is to clean up the world quickly after Hyborem is vanquished. If you play a Huge map and 75% of it is Hell, you'll never be willing to sit through cleaning it all. And if you even have just 20% Water Tiles it'll be nearly impossible to fully clean the world since there is no different Hell Graphic to let you see your progress.
 
That would make the whole idea of the ritual nearly pointless. If you've gotten the weapon, then you've destroyed Hyborem, seized his capital, and destroyed his civilization. Cleansing the rest of the world of hell terrain wouldn't be difficult to do.

As others have pointed out if there's water you can't stop it once it starts. (now anyway)

A ritual sounds like a cool idea.
 
Bill, you touched on the most maddening exercise of micromanagement in the game. Using the Adepts-strategy reminds me of the annoying clean pollution feature in CIV3.

If it bothers you enough, like it does me, just go to the Options screen and shut it off for your next game. It does take a little flavor out of the game and hurts you if you play the Infernal or maybe the Orc, but IMO I will sacrifice flavor for tedious micromanagement every time.

One way to fix this that I've suggested before is to have the Sanctify spell actually do something. As it is now, the nasty terrain is only gone one or two turns before coming back. Also, the spread via rivers and such is another pain.
 
Bill, you touched on the most maddening exercise of micromanagement in the game. Using the Adepts-strategy reminds me of the annoying clean pollution feature in CIV3.

If it bothers you enough, like it does me, just go to the Options screen and shut it off for your next game. It does take a little flavor out of the game and hurts you if you play the Infernal or maybe the Orc, but IMO I will sacrifice flavor for tedious micromanagement every time.

One way to fix this that I've suggested before is to have the Sanctify spell actually do something. As it is now, the nasty terrain is only gone one or two turns before coming back. Also, the spread via rivers and such is another pain.

I like the idea behind it but I'd just like a way to shut it off. Even when I'm playing the bad guys the terrain is annoying. And, yeah, the micromangement is a killer.

As another idea how about a "counter corruption" effect? If the angel race makes it perhaps they could have a counter spreading influence (the equivalent of sanctify) that has the opposite effect. Eventually the two effects could collide and stabilize at a border but you could use the sanctify spell to push back the border. Is that possible or is the effect of the corruption a "can only do it one-at-a-time" effect?
 
I like the idea behind it but I'd just like a way to shut it off. Even when I'm playing the bad guys the terrain is annoying. And, yeah, the micromangement is a killer.

Bill, I'm sorry, I made a mistake in my last post. You cannot shut off this hell terrain 'feature' in the Options screen. You have to go down the long list of game variables when you start your Custom Game and turn it off there. Thankfully, once you check that box for "No Hell Terrain" you won't see it in your games - even when Hyborem is summoned.

You will still get some big fire messes occasionally, but that is dealt with a lot easier than the hell terrain IMO.
 
That would make the whole idea of the ritual nearly pointless. If you've gotten the weapon, then you've destroyed Hyborem, seized his capital, and destroyed his civilization. Cleansing the rest of the world of hell terrain wouldn't be difficult to do.

actually it would because Hyborem could build it, or the weapon could have been picked up by Sheaim or another civ with no interest in cleansing hell terrain.
 
I decided to do two things in my current game to make this "better" by editing the Python scripts.

1) I changed the range of sanctify from 1 square to 2. I always play on huge maps so this should help a lot. On small maps this might be too good, though, so it's not a general solution.
2) I changed the spread via the "plot counter" to be 0 or 1 (50-50 chance) instead of always 1.

So that should slow it down a bit and let me control it without devoting scores of adepts every turn.
 
If anyone would have a hell-cleansing ritual shouldn't it be the Mercurians? They are probably best suited for having a ritual to cleanse the world of hell-terrain. They seem to be the ones who would be most vigilant against hell and their one purpose is to destroy the infernals and everything demonic.

I decided to do two things in my current game to make this "better" by editing the Python scripts.

1) I changed the range of sanctify from 1 square to 2. I always play on huge maps so this should help a lot. On small maps this might be too good, though, so it's not a general solution.
2) I changed the spread via the "plot counter" to be 0 or 1 (50-50 chance) instead of always 1.

So that should slow it down a bit and let me control it without devoting scores of adepts every turn.

50-50 sounds like a good change although a 75-25 chance of spreading may be more balanced when combined with the sanctify radius set to 2.

Sanctify with a 1 square radius works fine on small and normal. But on a huge map sanctifying a 1 square radius per cast feels hopeless when facing a 50% hell covered world. Would it be possible for sanctify to be scaled to 2 square radius on large/huge maps and remain 1 on small and normal?

About the water, if it is even possible: an alternate ocean/shore graphic(s) for hell-corrupted waters (darkened water? red tinted water?) would be very, very useful since currently it's near impossible to find hell terrain in water. It makes little sense how the ground visibly becomes hellish while the water remains perfectly normal despite becoming a part of hell. There is the common problem of the war on hell terrain being lost when it reaches ocean squares. If it would be possible to actually see where it has spread in water then it would be beneficial to load up a few ships with life 1 adepts to cleanse the hell-terrain oceans.
 
Top Bottom