From 713833f4b87a28e35e74e64aff7e23edca7dba22 Mon Sep 17 00:00:00 2001 From: Azgaar Date: Sun, 8 Aug 2021 13:44:50 +0300 Subject: [PATCH] resource units --- data/resources.js | 2 +- main.js | 1 + modules/production-generator.js | 21 ++++++++++++++++++++- modules/ui/burg-editor.js | 13 ++----------- 4 files changed, 24 insertions(+), 13 deletions(-) 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 f69ec11b..f1dc8277 100644 --- a/main.js +++ b/main.js @@ -722,6 +722,7 @@ async function generate(options) { BurgsAndStates.defineStateForms(); Production.collectResources(); + Production.defineExport(); BurgsAndStates.generateProvinces(); BurgsAndStates.defineBurgFeatures(); 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 c3f379f2..49b9fa65 100644 --- a/modules/ui/burg-editor.js +++ b/modules/ui/burg-editor.js @@ -96,17 +96,8 @@ function editBurg(id) { document.getElementById("burgImport").innerHTML = ''; // economics block - let productionHTML = ''; - for (const resourceId in b.production) { - const {name, unit, icon} = Resources.get(+resourceId); - const production = b.production[resourceId]; - const unitName = production > 1 ? unit + 's' : unit; - productionHTML += ` - - ${production} - `; - } - document.getElementById('burgProduction').innerHTML = productionHTML; + document.getElementById('burgProduction').innerHTML = getProduction(b.production); + document.getElementById('burgExport').innerHTML = getProduction(b.export); //toggle lock updateBurgLockIcon();