Floodplains and Hell terrain

Zobo

Chieftain
Joined
Mar 1, 2008
Messages
69
Location
Finland
I do not like how flood plains (best food-producing terrain) turn to burning sands (no food, terrible to look at) in hell, and furthermore if sanctified reverts to normal desert.

Could all flood plains turn to, I don't know, Miasmal swamps (with fog?) in hell, so they could return to desert/flood plains if reverted back, and could have some food production in hell as well?
 
Flood Plains become Obsidian Plains in Hell Terrain. However when the burning sands catch fire, the Obsidian Plains are burned off, removing the 3 food bonus. There's probably a way to fix that; I also suspect it's on somebody's to-do list.
 
I actually managed to miss that on my AV-Calabin game. :blush:

Thanks for the reply.

I think I gotta test this further, using spring to remove all deserts before converting to AV and getting the hyborem to show up.

And test what happens if an AV-civilization summons the Mercurians :crazyeye:
 
I actually managed to miss that on my AV-Calabin game. :blush:

Thanks for the reply.

I think I gotta test this further, using spring to remove all deserts before converting to AV and getting the hyborem to show up.

And test what happens if an AV-civilization summons the Mercurians :crazyeye:

I don't think spring will upgrade flood plains though, so they will still become burning sands....

And only neutral or good civs can summon the Mercurians....
 
Actually, any civ that dosen't follow AV can summon them.
 
Actually that thing is bugged, i lost flood plains when they reverted to obsidian plain and got lost, I even hard added obsidian plains to fields of perdition, and in the next turn they disapeared again.
 
Also is a real hit at creation mapscript since some civs start in Deserts with loads of floodplains there. So a fix whould be really nice. :)
(perhaps preventing flames from burning any terrain features away save forests might work. But perhaps that whould have other implications which are problematic and which i haven't minded until now.)

Btw. Upgrading Floodplain-Tiles with druids or vitalize-archmages should work. Question is if then the obsidian Plains stay or still vanish. Also thats sadly a late-game option for neutral-civs only...
And spring shouldnt work really. vitalizing such deserts is overpowered enough. (after all a farm with agriculture and sanitation on a grassland-upgraded Floodplain-tile yields 8! food and 1 Commerce. Yery hard to beat that one. Rivals Ygdrasil with each of those tiles. And 5 Food +1 Comerce in Hell with StW rivals that easiely)
 
Genesis would work for non-neutral civs; it effectively Vitalises all your tiles.
 
Code:
def reqVitalize(caster):
	pPlot = caster.plot()
	if pPlot.getOwner() != caster.getOwner():
		return False
	if pPlot.isWater():
		return false
	if pPlot.getTerrainType() == gc.getInfoTypeForString('TERRAIN_GRASS'):
		return False
	if pPlot.getTerrainType() == gc.getInfoTypeForString('TERRAIN_BURNING_SANDS'):
		return False
	if pPlot.getTerrainType() == gc.getInfoTypeForString('TERRAIN_BROKEN_LANDS'):
		return False
	if pPlot.getTerrainType() == gc.getInfoTypeForString('TERRAIN_FIELDS_OF_PERDITION'):
		return False
	return True

def spellVitalize(caster):
	pPlot = caster.plot()
	if(pPlot.getTerrainType()==gc.getInfoTypeForString('TERRAIN_SNOW')):
		pPlot.setTerrainType(gc.getInfoTypeForString('TERRAIN_TUNDRA'),True,True)
	elif(pPlot.getTerrainType()==gc.getInfoTypeForString('TERRAIN_TUNDRA')):
		pPlot.setTerrainType(gc.getInfoTypeForString('TERRAIN_PLAINS'),True,True)
	elif(pPlot.getTerrainType()==gc.getInfoTypeForString('TERRAIN_DESERT')):
		pPlot.setTerrainType(gc.getInfoTypeForString('TERRAIN_PLAINS'),True,True)
	elif(pPlot.getTerrainType()==gc.getInfoTypeForString('TERRAIN_PLAINS')):
		pPlot.setTerrainType(gc.getInfoTypeForString('TERRAIN_GRASS'),True,True)

Code:
	def genesis(self, iPlayer):
		iSnow = gc.getInfoTypeForString('TERRAIN_SNOW')
		iTundra = gc.getInfoTypeForString('TERRAIN_TUNDRA')
		iPlains = gc.getInfoTypeForString('TERRAIN_PLAINS')
		iDesert = gc.getInfoTypeForString('TERRAIN_DESERT')
		iGrass = gc.getInfoTypeForString('TERRAIN_GRASS')
		iOasis = gc.getInfoTypeForString('FEATURE_OASIS')
		iForestAncient = gc.getInfoTypeForString('FEATURE_FOREST_ANCIENT')
		iForest = gc.getInfoTypeForString('FEATURE_FOREST')
		for i in range (CyMap().numPlots()):
			pPlot = CyMap().plotByIndex(i)
			if pPlot.getOwner() == iPlayer:
				if(pPlot.getTerrainType() == iSnow):
					pPlot.setTerrainType(iTundra,True,True)
				elif(pPlot.getTerrainType() == iTundra):
					pPlot.setTerrainType(iPlains,True,True)
				elif(pPlot.getTerrainType() == iDesert and pPlot.getFeatureType() != iOasis):
					pPlot.setTerrainType(iPlains,True,True)
				elif(pPlot.getTerrainType() == iPlains):
					pPlot.setTerrainType(iGrass,True,True)
				elif(pPlot.getTerrainType() == iGrass and pPlot.getImprovementType() == -1 and pPlot.getFeatureType() != iForestAncient and pPlot.isPeak() == False):
					pPlot.setFeatureType(iForest, 0)

Code:
def reqSpring(caster):
	pPlot = caster.plot()
	pPlayer = gc.getPlayer(caster.getOwner())
	bFlames = false
	iX = pPlot.getX()
	iY = pPlot.getY()
	for iiX in range(iX-1, iX+2, 1):
		for iiY in range(iY-1, iY+2, 1):
			pPlot2 = CyMap().plot(iiX,iiY)
			if pPlot2.getFeatureType() == gc.getInfoTypeForString('FEATURE_FLAMES') or pPlot2.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_SMOKE'):
				bFlames = true
	if bFlames == False:
		if pPlot.getTerrainType() != gc.getInfoTypeForString('TERRAIN_DESERT'):
			return False
		if pPlot.getFeatureType() == gc.getInfoTypeForString('FEATURE_FLOOD_PLAINS'):
			return False
		if pPlayer.isHuman() == False:
			if caster.getOwner() != pPlot.getOwner():
				return False
	if pPlayer.isHuman() == False:
		if pPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_INFERNAL'):
			return False
	return True

def spellSpring(caster):
	pPlot = caster.plot()
	if (pPlot.getTerrainType() == gc.getInfoTypeForString('TERRAIN_DESERT') and pPlot.getFeatureType() != gc.getInfoTypeForString('FEATURE_FLOOD_PLAINS')):
		pPlot.setTerrainType(gc.getInfoTypeForString('TERRAIN_PLAINS'),True,True)
	iX = pPlot.getX()
	iY = pPlot.getY()
	for iiX in range(iX-1, iX+2, 1):
		for iiY in range(iY-1, iY+2, 1):
			pPlot2 = CyMap().plot(iiX,iiY)
			if pPlot2.getFeatureType() == gc.getInfoTypeForString('FEATURE_FLAMES'):
				pPlot2.setFeatureType(-1, -1)
			if pPlot2.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_SMOKE'):
				pPlot2.setImprovementType(-1)
Neither Vitalize nor Genesis will work on any sort of hell terrain. Spring already won't work on flood planes.

I think that vitalizing/using genesis before hell spreads to the tile should work though.

I'm thinking that flames should be made not to replace any feature with <bFlammable>0</bFlammable>
 
It doesn't mean that Hyborem can't build genesis though, I have built it with him at least once before. Still useful if you want to keep someone else from doing it or just for the score. However Genesis would be futile anyway when the hell terrain is about to swallow up your lands.

As far as the flammable thing, I think that may have been partially why that crash with blaze was happening since it was trying to burn something that was not flammable.
 
Back
Top Bottom