diff --git a/data/resources.js b/data/resources.js index fa29713e..ddbff606 100644 --- a/data/resources.js +++ b/data/resources.js @@ -535,7 +535,7 @@ window.FMG.data.resourceModels = { Marine_and_rivers: 'shore(-1) && (type("ocean", "freshwater", "salt") || (river() && shore(1, 2)))', Pastures_and_temperate_forest: '(biome(3, 4) && !elevation()) || (biome(6) && random(70)) || (biome(5) && nth(5))', Tropical_forests: 'biome(5, 7)', - Arid_land_and_salt_lakes: 'type("salt", "dry") || (biome(1, 2) && random(70)) || (biome(12) && nth(10))', + Arid_land_and_salt_lakes: 'shore(1) && type("salt", "dry") || (biome(1, 2) && random(70)) || (biome(12) && nth(10))', Hot_desert: 'biome(1)', Deserts: 'biome(1, 2)', Grassland_and_cold_desert: 'biome(3) || (biome(2) && nth(4))', diff --git a/main.js b/main.js index b5240285..08a37dfc 100644 --- a/main.js +++ b/main.js @@ -727,6 +727,7 @@ async function generate(options) { BurgsAndStates.defineTaxes(); Production.collectResources(); + Production.defineExport(); Trade.defineCenters(); Trade.calculateDistances(); diff --git a/modules/production-generator.js b/modules/production-generator.js index 56da2fa1..4907f5ba 100644 --- a/modules/production-generator.js +++ b/modules/production-generator.js @@ -110,5 +110,24 @@ window.Production = (function () { } }; - return {collectResources}; + const defineExport = () => { + const {cells, burgs} = pack; + + for (const burg of burgs) { + if (!burg.i || burg.removed) continue; + const {population, production: resourcePool} = burg; + const localUsage = Math.ceil(population); + + const surplus = {}; + for (const resourceId in resourcePool) { + const production = resourcePool[resourceId]; + const extraProduction = production - localUsage; + if (extraProduction > 0) surplus[resourceId] = extraProduction; + } + + burg.export = surplus; + } + }; + + return {collectResources, defineExport}; })(); diff --git a/modules/ui/burg-editor.js b/modules/ui/burg-editor.js index ea70ae2c..afd10c0e 100644 --- a/modules/ui/burg-editor.js +++ b/modules/ui/burg-editor.js @@ -163,6 +163,23 @@ function editBurg(id) { return `${totalIncome}: ${exported.join('')}`; } + function getProduction(resources) { + let html = ''; + + for (const resourceId in resources) { + const {name, unit, icon} = Resources.get(+resourceId); + const production = resources[resourceId]; + const unitName = production > 1 ? unit + 's' : unit; + + html += ` + + ${production} + `; + } + + return html; + } + // [-1; 31] °C, source: https://en.wikipedia.org/wiki/List_of_cities_by_average_temperature function getTemperatureLikeness(temperature) { if (temperature < -15) return 'nowhere in the real-world';