Terraforming marsh in RFC?

Can you guys find an example of a marsh that has been terraformed.

Russia, Saint-Petersburg. People brought stones on carts and basically floored the marsh over.
It was a plain marsh everywhere, now there's a big city. Peter I was crazy.
 
Hello, I know that this thread is old, but I have been trying for the past few days to mod my game to terraform marsh, but i cannot get it to work. I tried to use the "poineertank" mod as a basis for this, but I don't know what I am doing wrong. This has started to obsess me so much that I joined these forums just to ask this. Could anybody help me?

I am using RFC 1.186, BTS build version 3.1.9.0 from May 2009.

My changes are:

In Civ4ImprovementInfos:
Spoiler :
<ImprovementInfo>
<Type>IMPROVEMENT_DRAIN_MARSH</Type>
<Description>TXT_KEY_IMPROVEMENT_DRAIN_MARSH</Description>
<Civilopedia>TXT_KEY_IMPROVEMENT_DRAIN_MARSH_PEDIA</Civilopedia>
<ArtDefineTag>ART_DEF_IMPROVEMENT_MINE</ArtDefineTag>
<YieldChanges>
<iYieldChange>2</iYieldChange>
<iYieldChange>0</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
<RiverSideYieldChange/>
<bActsAsCity>0</bActsAsCity>
<bHillsMakesValid>0</bHillsMakesValid>
<bFreshWaterMakesValid>0</bFreshWaterMakesValid>
<bRiverSideMakesValid>0</bRiverSideMakesValid>
<bNoFreshWater>0</bNoFreshWater>
<bRequiresFlatlands>1</bRequiresFlatlands>
<bRequiresRiverSide>0</bRequiresRiverSide>
<bRequiresIrrigation>0</bRequiresIrrigation>
<bCarriesIrrigation>0</bCarriesIrrigation>
<bRequiresFeature>0</bRequiresFeature>
<bWater>0</bWater>
<bGoody>0</bGoody>
<bPermanent>0</bPermanent>
<bUseLSystem>0</bUseLSystem>
<iAdvancedStartCost>48</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iTilesPerGoody>0</iTilesPerGoody>
<iGoodyRange>0</iGoodyRange>
<iFeatureGrowth>0</iFeatureGrowth>
<iUpgradeTime>0</iUpgradeTime>
<iAirBombDefense>0</iAirBombDefense>
<iDefenseModifier>0</iDefenseModifier>
<iHappiness>0</iHappiness>
<iPillageGold>0</iPillageGold>
<bOutsideBorders>1</bOutsideBorders>
<TerrainMakesValids>
<TerrainMakesValid>
<TerrainType>TERRAIN_MARSH</TerrainType>
<bMakesValid>1</bMakesValid>
</TerrainMakesValid>
</TerrainMakesValids>
<FeatureMakesValids>
</FeatureMakesValids>
<ImprovementPillage/>
<ImprovementUpgrade/>
<TechYieldChanges/>
<RouteYieldChanges/>
<bGraphicalOnly>0</bGraphicalOnly>
</ImprovementInfo>


In Civ4BuildInfos:
Spoiler :
<BuildInfo>
<Type>BUILD_DRAIN_MARSH</Type>
<Description>TXT_KEY_BUILD_DRAIN_MARSH</Description>
<Help/>
<PrereqTech>TECH_CIVIL_SERVICE</PrereqTech>
<iTime>200</iTime>
<iCost>0</iCost>
<bKill>0</bKill>
<ImprovementType>IMPROVEMENT_DRAIN_MARSH</ImprovementType>
<RouteType>NONE</RouteType>
<EntityEvent>ENTITY_EVENT_BUILD</EntityEvent>
<FeatureStructs/>
<HotKey>KB_F</HotKey>
<bAltDown>0</bAltDown>
<bShiftDown>1</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>1</iHotKeyPriority>
<Button>,Art/Interface/Buttons/Builds/BuildFarm.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,3,7</Button>
</BuildInfo>



In CvEventManager:
Spoiler :

def onImprovementBuilt(self, argsList):
'Improvement Built'
iImprovement, iX, iY = argsList
if (not self.__LOG_IMPROVEMENT):
return
CvUtil.pyPrint('Improvement %s was built at %d, %d'
%(PyInfo.ImprovementInfo(iImprovement).getDescription(), iX, iY))
###MARSH-LESS Start#############################
pPlot = CyMap().plot(iX, iY)
if iImprovement == gc.getInfoTypeForString('IMPROVEMENT_DRAIN_MARSH'):
print("It worked =)")
pPlot.setTerrainType(TerrainTypes.TERRAIN_GRASS, True, True)
pPlot.setBonusType(BonusTypes.NO_BONUS)
pPlot.setFeatureType(FeatureType.NO_FEATURE)
pPlot.setImprovementType(-1)
###MARSH-LESS END############



When I have the workers drain a marsh, the improvement is built, but the terrain does not change, and the text is not printed.

Could anybody please help me?:help:
 
Here's what I did in my mod:

The Swamp terrain is in fact a combination of a base Terrain type, a terrain Feature and a special Resource. So firstly I divided the Swamps into one variety with the Feature and one variety without it. The Feature part can also be drainaged by simply "Cutting" it down, as if it were Forest or Jungle (the other types of Feature, along with Flood Plain). This is an industrial age feature and requires Railroad (for steam powered pumps).

Also, I permitted some Improvements on Swamp tiles, depending on if the Feature part was still there. Most units can also move through Swamp terrain (not siege units among others) but they receive damage every turn. A Road (or Railroad) effectively takes care of this as units mostly won't stand on the Terrain in between turns. And you can always remove the Feature layer later on (see above).

If you get your mod to work I'd probably use it as a base for my own modding, so please keep the rest of us posted on the development. I'm not as sure about removing a Swamp from a tile completely though, and absolutely not turn it into Grassland! There's a lot of Swamp in Siberia, and drainaging all of that would make the region anything but the Taiga it should be! :eek:

So I think that the Swamp terrain shouldn't be removable entirely, but it shouldn't be completely impassable to the majority of units, and it should be workable and improvable. It would probably be some of the worst tiles in a city's BFC and it would probably be better to run specialists instead of working them, even with improvements. I have enabled Forest Preserves on them though (renamed Nature Preserves) and since the other kind is forested you can use them for Lumber Mills later on. Also, you could build riverside Cottages on Swamp tiles but they'd have to be supported by other tiles for :food:.
 
:thanx:Thank you for the advice! I was so focused on why I could not get it to work, that I never realised how unrealistic it was. I decided that it is more realistic/accurate (and easier :p) to just make it an improvement with a smaller bonus. The improvement removes the feature part of the marsh (so all units can enter it) and builds a "drained marsh" that looks like a windmill. this adds 1:food:, and also adds 1:commerce: if it is next to a river. A city can work this for 35 turns to make it into a "thoroughly drained marsh" that adds 1 more:commerce:. With the discovery of plastics, an extra :food: is added (only for the improved one), making it able to sustain 1 population and generate 1-2 :commerce: depending if it is next to a river or not. :D The initial improvement is possible to build with the discovery of machinery, instead of ciliv service.

The improvements are:
Spoiler :
<ImprovementInfo>
<Type>IMPROVEMENT_DRAIN_MARSH</Type>
<Description>Drained marsh</Description>
<Civilopedia>TXT_KEY_IMPROVEMENT_DRAIN_MARSH_PEDIA</Civilopedia>
<ArtDefineTag>ART_DEF_IMPROVEMENT_WINDMILL</ArtDefineTag>
<YieldChanges>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
<RiverSideYieldChange>
<iYield>0</iYield>
<iYield>0</iYield>
<iYield>1</iYield>
</RiverSideYieldChange>
<bActsAsCity>0</bActsAsCity>
<bHillsMakesValid>0</bHillsMakesValid>
<bFreshWaterMakesValid>0</bFreshWaterMakesValid>
<bRiverSideMakesValid>0</bRiverSideMakesValid>
<bNoFreshWater>0</bNoFreshWater>
<bRequiresFlatlands>1</bRequiresFlatlands>
<bRequiresRiverSide>0</bRequiresRiverSide>
<bRequiresIrrigation>0</bRequiresIrrigation>
<bCarriesIrrigation>0</bCarriesIrrigation>
<bRequiresFeature>0</bRequiresFeature>
<bWater>0</bWater>
<bGoody>0</bGoody>
<bPermanent>1</bPermanent>
<bUseLSystem>0</bUseLSystem>
<iAdvancedStartCost>48</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iTilesPerGoody>0</iTilesPerGoody>
<iGoodyRange>0</iGoodyRange>
<iFeatureGrowth>0</iFeatureGrowth>
<iUpgradeTime>35</iUpgradeTime>
<iAirBombDefense>0</iAirBombDefense>
<iDefenseModifier>0</iDefenseModifier>
<iHappiness>0</iHappiness>
<iPillageGold>10</iPillageGold>
<bOutsideBorders>1</bOutsideBorders>
<TerrainMakesValids>
<TerrainMakesValid>
<TerrainType>TERRAIN_MARSH</TerrainType>
<bMakesValid>1</bMakesValid>
</TerrainMakesValid>
</TerrainMakesValids>
<FeatureMakesValids/>
<ImprovementPillage/>
<ImprovementUpgrade>IMPROVEMENT_DRAIN_MARSH2</ImprovementUpgrade>
<TechYieldChanges/>
<RouteYieldChanges/>
<bGraphicalOnly>0</bGraphicalOnly>
</ImprovementInfo>
<ImprovementInfo>
<Type>IMPROVEMENT_DRAIN_MARSH2</Type>
<Description>Thoroughly drained marsh</Description>
<Civilopedia>TXT_KEY_IMPROVEMENT_DRAIN_MARSH_PEDIA</Civilopedia>
<ArtDefineTag>ART_DEF_IMPROVEMENT_WINDMILL</ArtDefineTag>
<YieldChanges>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
</YieldChanges>
<RiverSideYieldChange>
<iYield>0</iYield>
<iYield>0</iYield>
<iYield>1</iYield>
</RiverSideYieldChange>
<bActsAsCity>0</bActsAsCity>
<bHillsMakesValid>0</bHillsMakesValid>
<bFreshWaterMakesValid>0</bFreshWaterMakesValid>
<bRiverSideMakesValid>0</bRiverSideMakesValid>
<bNoFreshWater>0</bNoFreshWater>
<bRequiresFlatlands>0</bRequiresFlatlands>
<bRequiresRiverSide>0</bRequiresRiverSide>
<bRequiresIrrigation>0</bRequiresIrrigation>
<bCarriesIrrigation>0</bCarriesIrrigation>
<bRequiresFeature>0</bRequiresFeature>
<bWater>0</bWater>
<bGoody>0</bGoody>
<bPermanent>1</bPermanent>
<bUseLSystem>0</bUseLSystem>
<iAdvancedStartCost>24</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iTilesPerGoody>0</iTilesPerGoody>
<iGoodyRange>0</iGoodyRange>
<iFeatureGrowth>0</iFeatureGrowth>
<iUpgradeTime>0</iUpgradeTime>
<iAirBombDefense>5</iAirBombDefense>
<iDefenseModifier>0</iDefenseModifier>
<iHappiness>0</iHappiness>
<iPillageGold>15</iPillageGold>
<bOutsideBorders>0</bOutsideBorders>
<TerrainMakesValids/>
<FeatureMakesValids/>
<ImprovementPillage/>
<ImprovementUpgrade/>
<TechYieldChanges>
<TechYieldChange>
<PrereqTech>TECH_PLASTICS</PrereqTech>
<TechYields>
<iYield>1</iYield>
<iYield>0</iYield>
<iYield>0</iYield>
</TechYields>
</TechYieldChange>
</TechYieldChanges>
<RouteYieldChanges/>
<bGraphicalOnly>0</bGraphicalOnly>
</ImprovementInfo>


In the ImprovementInfos XML file.

Do you think this is better?
 
I think that more than enough example of marshes being drained have been presented, but I think I'll add my own: my hometown of Calcutta (Kolkata) was some swamp until the mid 18th century; now its home to 15ish million people.
 
I agree that marshes have been drained in human history, but I also shun the micromanagement effort that a worker based solution would pose on us.

However I believe the same simulation of man made marsh-draining could be accomplished by simply let the feature "grow" negativly (like cottages).

This grow would of course appear only when the marsh is within cultural boundaries (like forts in FFC which grow into citadels)

So if a marsh is within cultural boundaries it will simply disappear after some looong while - this would simulate the effort of the native people in settling and draining the land. Certain techs could enhance the speed of draining.
 
Pretty good idea actually... The only problem is, we choose which places to drain. This would make it somewhat randomized... OR, if it didn't, then all marshes within the cultural boundaries on turn X would all be normalized on turn Y... seems unlikely.
 
Pretty good idea actually... The only problem is, we choose which places to drain. This would make it somewhat randomized... OR, if it didn't, then all marshes within the cultural boundaries on turn X would all be normalized on turn Y... seems unlikely.
You choose what marsh to drain by working that tile. Unworked tiles wouldn't be drained either, as no one is utilizing the land and making improvements to it as time goes by.

So, by making a March into a terrain improvement instead of a base terrain/feature/resource, it could be coded so that it will be cultivated into something else (as a Cottage does) if worked. The reward of working a poor March tiles for a century or two would be to eventually get a tile worthwhile having.

This could also be a way to keep the graphic of the Marsh bonus while being able to get rid of it. The graphic becomes the Marsh improvement, and it would be an easy task to have it develop into a Windmill or Farm or whatever over time.
 
No, I agree with you... I was referring directly to Rod's post, which suggested not using workers for it. Pointing out the issue(s) with that proposition.

I think workers working it is the only way it should happen, because you do have to put resources into such things.
 
You missunderstood Baldyr's post.
He was advising to "work" the tile in the city screen like a cottage in order to gain the draining effect. I am not fully convinced that the AI will be able to use the drain in this way, however humans could do it but it would be no less micromanagement than workers...
 
Oh, well, in that case... No... I don't like that idea really at all.
Stick with workers, make them spend a huge amount of turns on it... perhaps in stages...
This is the whole point to workers, making tiles more productive so that you can then "work" them within your city.
 
I support kochman's idea, using the citizen's to work it would be a major drain on potential, and really not worth it in the long run.

On a somewhat related note, I love the historicity of making forests unchoppable until the high middle ages and the economic expansion possible in that era (spoken based on a fairly successful Bulgaria game). I think that similarly allowing marshes to be removed by improvements would be a nice addition in the renaissance.
 
Can you make the improvement negate the health penalty from swamps?
 
An interesting solution would be to make them workable, with maybe +1 food after the research of Civil Service, and make them clearable with the research of Steam Engine. Many of the world's swamps weren't drained until the discovery of steam-driven pumps.
 
An interesting solution would be to make them workable, with maybe +1 food after the research of Civil Service, and make them clearable with the research of Steam Engine. Many of the world's swamps weren't drained until the discovery of steam-driven pumps.
This actually sounds very much like what I did myself...
 
Top Bottom