When is it possible to reclaim land in Freeciv by transforming ocean and lake tiles into swamp?
It is possible to do land reclamation by placing a ship containing engineers on an ocean or lake tile, and then ordering those engineers to transform the tile into swamp.
However, I have noticed that not all water tiles can be transformed into swamp. Sometimes the transform to swamp button for the engineers is blanked out. From experience, only some ocean/lake tiles next to a land tile can be transformed; it is not possible to transform an ocean tile in the middle of a vast ocean into land.
What are the exact conditions under which an ocean or lake tile can be transformed into swamp?
Solution 1:
Terrain transformation requires the following two conditions to be met:
- The tile is surrounded by at least N land tiles.
The number N is determined by the current game's ruleset, specifically the option ocean_reclaim_requirement = 30%
. By default, since the game defines that each tile borders 8 other tiles, this is equivalent to needing 3 adjacent land tiles. In order to transform an arbitrary tile in the middle of the ocean, you would need to transform at the minimum a 3-tile wide bridge of tiles towards it, for example in a pattern like this:
- The tile needs to not be in the permafrost region of the map. These are any tiles that are frozen at the start of the game. So snow or ice tiles.
There's another map parameter thaw_requirement
that sets this. By default the value is 101, which does not allow thawing or freezing tiles via terraforming.
Also see the relevant wiki page, or browse the code over at github: the relevant section is the function terrain_surroundings_allow_change
in /common/map.c
, and the function can_reclaim_ocean
.