diff --git a/main.js b/main.js index 5cf0edc3..82787684 100644 --- a/main.js +++ b/main.js @@ -684,6 +684,7 @@ async function generate(options) { const timeStart = performance.now(); const {seed: precreatedSeed, graph: precreatedGraph} = options || {}; + pack = {}; invokeActiveZooming(); setSeed(precreatedSeed); INFO && console.group("Generated Map " + seed); diff --git a/modules/cultures-generator.js b/modules/cultures-generator.js index eeb09407..b167b88e 100644 --- a/modules/cultures-generator.js +++ b/modules/cultures-generator.js @@ -118,21 +118,23 @@ window.Cultures = (function () { function selectCultures(culturesNumber) { let def = getDefault(culturesNumber); - if (culturesNumber === def.length) return def; - if (def.every(d => d.odd === 1)) return def.splice(0, culturesNumber); - - const count = Math.min(culturesNumber, def.length); const cultures = []; pack.cultures?.forEach(function (culture) { if (culture.lock) cultures.push(culture); }); + + if (!cultures.length) { + if (culturesNumber === def.length) return def; + if (def.every(d => d.odd === 1)) return def.splice(0, culturesNumber); + } - for (let culture, rnd, i = 0; cultures.length < count && i < 200; i++) { + for (let culture, rnd, i = 0; cultures.length < culturesNumber && def.length > 0;) { do { rnd = rand(def.length - 1); culture = def[rnd]; - } while (!P(culture.odd)); + i++; + } while (i < 200 && !P(culture.odd)); cultures.push(culture); def.splice(rnd, 1); } diff --git a/modules/dynamic/editors/religions-editor.js b/modules/dynamic/editors/religions-editor.js index 8a4abc5e..45d9886f 100644 --- a/modules/dynamic/editors/religions-editor.js +++ b/modules/dynamic/editors/religions-editor.js @@ -5,7 +5,7 @@ export function open() { closeDialogs("#religionsEditor, .stable"); if (layerIsOn("toggleStates")) toggleStates(); if (layerIsOn("toggleBiomes")) toggleBiomes(); - if (layerIsOn("toggleCultures")) toggleReligions(); + if (layerIsOn("toggleCultures")) toggleCultures(); if (layerIsOn("toggleProvinces")) toggleProvinces(); if (!layerIsOn("toggleReligions")) toggleReligions(); @@ -213,7 +213,7 @@ function religionsEditorAddLines() {
@@ -475,7 +475,7 @@ function drawReligionCenters() { .attr("stroke", "#444444") .style("cursor", "move"); - const data = pack.religions.filter(r => r.i && r.center && r.cells && !r.removed); + const data = pack.religions.filter(r => r.i && r.center && !r.removed); religionCenters .selectAll("circle") .data(data)