Terraced Irrigation, Slash-and-Burn, and some Extras...

I added this weekend two new discoveries: terraced irrigation, and slash-and-burn. The first increases arability in hilly terrain and the second does the same in wood covered terrain. Both depend on human groups having a basic level of agriculture knowledge and also for the terrain being hilly or wood covered respectively. To be able to implement those discoveries I had to add a bunch of mod conditions, factors and effects that can alter the arability and accessibility of individual terrain cells, or can test for a pair of new terrain attributes: hilliness and wood coverage...

Terrain hilliness is simply measured by calculating the altitude difference between a cell and all the adjacent cells. To visualize it, i added a hilliness overlay (accessible from the misc overlays sub-menu) which shows in shades from green (very low) to red (very high) the amount of hilliness on each cell:





Hilliness will have an adverse effect on terrain arability and accessibility, which is what the discovery of terraced irrigation partially counteracts.

Wood coverage is a measure of how much of a presence woody-plant biomes have on a particular cell. To be able to implement this I had to add a new attribute to biome mods called 'traits'. For the upcoming release there'll be only once single trait that can be added to particular biomes, 'wood', which indicates that the biome is composed of woody plants (e.g. forests, rainforests, and taigas). Wood coverage will also have it's own overlay (accessible through 'misc overlays') with the wood-dense areas highlighted in green:





A terrain cell's arability is now calculated in a new way which makes it depended on the biomes present in that cell. This required adding an additional attribute to biome mod entries, simply called 'arability', that represents the percentage or arable land naturally available within that particular biome. Human groups that discover slash-and-burn will increase the amount of arable land in cells with high wood coverage (at the expense of the biome's extent).

In addition to all these changes I made a change to all mod file definitions in order to properly use Json arrays. I also added an extra overlay to display a terrain's level of accessibility. And, finally, I made farmland distribution visible when using the 'Biomes' Map Mode, which means that you'll be able to see some of the effects of human activity on the land itself without the need of activating a specific overlay.

My plans for the next weekend is to introduce two more discoveries related to shipbuilding. I'll try to keep them simple so do not expect a seafaring overhaul (yet). I'm not sure how much extra content related to discoveries I'll add after that but I don't expect it to be much. My hope is to start working on Drainage Basins and Rivers (winner of the 0.3.3 mini-feature pool) as soon as possible to complete.

Lastly, here's the mod code for the two new discoveries for your perusal:

{ "id": "terraced_irrigation", "name": "terraced irrigation", "gainConditions": ["group_has_knowledge:agriculture,3", "cell_arability:0.2", "cell_accessibility:0.2", "cell_hilliness:0.25"], "holdConditions": ["group_has_knowledge:agriculture,1", "cell_arability:0.1", "cell_accessibility:0.1", "cell_hilliness:0.15"], "gainEffects": ["apply_cell_arability_modifier:0.3", "apply_cell_accessibility_modifier:0.2"], "lossEffects": ["apply_cell_arability_modifier:-0.3", "apply_cell_accessibility_modifier:-0.2"], "eventTimeToTrigger": 91250000, "eventTimeToTriggerFactors": ["[INV]cell_hilliness"] }, { "id": "slash_and_burn", "name": "slash-and-burn", "gainConditions": ["group_has_knowledge:agriculture,4", "cell_arability:0.2", "cell_accessibility:0.2", "cell_wood_coverage:0.3"], "holdConditions": ["group_has_knowledge:agriculture,2", "cell_arability:0.1", "cell_accessibility:0.1", "cell_wood_coverage:0.2"], "gainEffects": ["apply_cell_arability_modifier:0.5", "apply_cell_accessibility_modifier:0.7"], "lossEffects": ["apply_cell_arability_modifier:-0.5", "apply_cell_accessibility_modifier:-0.7"], "eventTimeToTrigger": 91250000, "eventTimeToTriggerFactors": ["[INV]cell_wood_coverage"] },

See you next week!