From d7d4cfb724c83246bb83b823661d0d315ce0c6d3 Mon Sep 17 00:00:00 2001 From: gauvainboiche Date: Thu, 19 Dec 2024 09:52:37 +0100 Subject: [PATCH] Ajout des ressources --- javascript/plStat.js | 36 +++++++++++++++++++++++------------ javascript/planetFunctions.js | 27 ++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 14 deletions(-) diff --git a/javascript/plStat.js b/javascript/plStat.js index 6eabf96..b37bbdd 100644 --- a/javascript/plStat.js +++ b/javascript/plStat.js @@ -1,51 +1,63 @@ exports.planetType = { "Tempérée" : { "population" : 100, - "elements" : ["Roches", "Eau", "Bois", "Poissons communs", "Plantes communes"] + "elements" : ["Roches", "Eau", "Bois"], + "resources" : ["Poissons communs", "Plantes communes", "Faune domestique", "Céréales"] }, "Glacée" : { "population" : 1, - "elements" : ["Roches", "Glace", "Gaz"] + "elements" : ["Roches", "Glace", "Gaz"], + "resources" : ["Artefacts", "Epaves", "Minerais rares"] }, "Volcanique" : { "population" : 2, - "elements" : ["Gaz", "Roches", "Carbone"] + "elements" : ["Gaz", "Roches", "Carbone"], + "resources" : ["Minerais rares", "Gaz toxiques"] }, "Marécageuse" : { "population" : 10, - "elements" : ["Eau", "Bois", "Terre", "Faune sauvage"] + "elements" : ["Eau", "Bois", "Terre"], + "resources" : ["Faune sauvage", "Bois renforcé", "Eau toxique"] }, "Forestière" : { "population" : 20, - "elements" : ["Bois", "Bois ancien", "Plantes rares"] + "elements" : ["Bois"], + "resources" : ["Plantes rares", "Plantes communes", "Bois commun", "Bois renforcé"] }, "Océanique" : { "population" : 25, - "elements" : ["Eau"] + "elements" : ["Eau"], + "resources" : ["Poissons communs", "Poissons rares", "Minérais communs"] }, "Oecuménopole" : { "population" : 2000, - "elements" : ["Roches"] + "elements" : ["Roches"], + "resources" : ["Biens de consommation", "Biens de luxe"] }, "Désert" : { "population" : 50, - "elements" : ["Sable", "Roches"] + "elements" : ["Sable", "Roches"], + "resources" : ["Artefacts", "Epaves", "Minerais communs", "Gemmes"] }, "Minéralogique" : { "population" : 3, - "elements" : ["Roches"] + "elements" : ["Roches"], + "resources" : ["Minerais communs", "Minerais rares", "Gemmes"] }, "Gazeuse" : { "population" : 1, - "elements" : ["Gaz"] + "elements" : ["Gaz"], + "resources" : ["Gaz toxiques", "Gaz nobles"] }, "Acide" : { "population" : 1, - "elements" : ["Gaz", "Acide"] + "elements" : ["Gaz", "Acide"], + "resources" : ["Gaz toxique", "Minerais communs", "Eau toxique"] }, "Monde usine" : { "population" : 500, - "elements" : ["Acide", "Roche"] + "elements" : ["Acide", "Roche"], + "resources" : ["Epaves", "Minerais communs", "Biens de consommation", "Eau toxique"] } }; diff --git a/javascript/planetFunctions.js b/javascript/planetFunctions.js index 35cce3a..363e25d 100644 --- a/javascript/planetFunctions.js +++ b/javascript/planetFunctions.js @@ -1,5 +1,7 @@ +// Imports const stat = require("./plStat.js"); +// Simple functions to get random values const getRandomValue = (min, max) => {return Math.floor(Math.random() * (max - min + 1)) + min;} const Random = (array) => {return array[Math.floor(Math.random() * array.length)];} const RandomPlanet = (planet) => { @@ -7,19 +9,30 @@ const RandomPlanet = (planet) => { return keys[Math.floor(Math.random() * keys.length)]; } +// Main function generating planets const GeneratePlanet = () => { const planetTypeGeneration = RandomPlanet(stat.planetType); const planetName = Random(stat.planetNamePrefix) + Random(stat.planetNameSuffix); const planetPopulationPeople = Random(stat.planetPopulationType); const planetPopulationNumber = stat.planetType[planetTypeGeneration]["population"] * getRandomValue(5, 15) / 10; + // Elements and resources generation + // Elements const planetElements = stat.planetType[planetTypeGeneration].distributedElements; let elementsDescription = ''; for (let element in planetElements) { elementsDescription += ` ${element}: ${planetElements[element].toFixed(2)}%`; } + // Resources + const planetResources = stat.planetType[planetTypeGeneration].distributedResources; + let resourcesDescription = ''; + for (let resource in planetResources) { + resourcesDescription += ` + ${resource}: ${planetResources[resource].toFixed(2)}%`; + } + // Description = planet formatting const planetDescription = // Keep this formatting, or else play with the console.log of func PlanetLoop (` @@ -30,6 +43,9 @@ Type : ${planetTypeGeneration} Eléments : ${elementsDescription} +Ressources naturelles : + ${resourcesDescription} + Population : ${planetPopulationNumber} milliards @@ -37,6 +53,7 @@ Population : return planetDescription; } +// Generating planets in loop const PlanetLoop = (number) => { let count = 1; while (count <= number) { @@ -71,11 +88,17 @@ const distributeElementsRandomly = (elements) => { const distributePlanetTypesRandomly = (planetType) => { for (const key in planetType) { - if (Array.isArray(planetType[key].elements)) { - const elements = planetType[key].elements; + if (Array.isArray(planetType[key]["elements"])) { + const elements = planetType[key]["elements"]; const distributedElements = distributeElementsRandomly(elements); planetType[key].distributedElements = distributedElements; } + + if (Array.isArray(planetType[key]["resources"])) { + const resources = planetType[key]["resources"]; + const distributedResources = distributeElementsRandomly(resources); + planetType[key].distributedResources = distributedResources; + } } }