diff --git a/src/futureSocieties/fsPassage.js b/src/futureSocieties/fsPassage.js index 2169a34f938d5d574a1147e8fbe4bac21265e073..9a63c3ded1977f8c7bd83a22a10163134e079d94 100644 --- a/src/futureSocieties/fsPassage.js +++ b/src/futureSocieties/fsPassage.js @@ -387,7 +387,7 @@ App.UI.fsPassage = function() { r.push(`Select race:`); const select = document.createElement("select"); r.push(select); - for (const race of Array.from(App.Data.misc.filterRaces.keys()).filter(race => race !== arc.FSSubjugationistRace)) { // Subjugation race cannot be superior, so remove + for (const race of App.Utils.getRaceArrayWithoutParamRace(arc.FSSubjugationistRace)) { // Subjugation race cannot be superior, so remove const choice = App.UI.DOM.appendNewElement("option", select, capFirstChar(race)); choice.value = race; if (race === arc.FSSupremacistRace) { @@ -431,7 +431,7 @@ App.UI.fsPassage = function() { const select = document.createElement("select"); r.push(select); - for (const race of Array.from(App.Data.misc.filterRaces.keys()).filter(race => race !== arc.FSSupremacistRace)) { // Superior race cannot be subj, so remove + for (const race of App.Utils.getRaceArrayWithoutParamRace(arc.FSSupremacistRace)) { // Superior race cannot be subj, so remove const choice = App.UI.DOM.appendNewElement("option", select, capFirstChar(race)); choice.value = race; if (race === arc.FSSubjugationistRace) { diff --git a/src/js/utilsMisc.js b/src/js/utilsMisc.js index 6faa4928bbe1a727640c2af2064a75fd42e0c4df..d25cce3b1839a8af616fbcb6ef8c2dca3993b0a0 100644 --- a/src/js/utilsMisc.js +++ b/src/js/utilsMisc.js @@ -112,15 +112,9 @@ App.Utils.removeArticles = function(str) { }; /** + * @param {FC.Zeroable<FC.Race>} badRace * @returns {Array<FC.Race>} */ -App.Utils.getNonSubjugationistSlaveRaces = function() { - return Array.from(setup.filterRaces.keys()).filter(race => race !== V.arcologies[0].FSSubjugationistRace); -}; - -/** - * @returns {Array<FC.Race>} - */ -App.Utils.getNonSupremacistSlaveRaces = function() { - return Array.from(setup.filterRaces.keys()).filter(race => race !== V.arcologies[0].FSSupremacistRace); +App.Utils.getRaceArrayWithoutParamRace = function(badRace) { + return Array.from(setup.filterRaces.keys()).filter(race => race !== badRace); }; diff --git a/src/npc/generate/generateGenetics.js b/src/npc/generate/generateGenetics.js index 1b509dc1cecd329857e62a87bcca645dd220cbad..b82db10c716b1cb9bb415da7564614ab7ecd11cb 100644 --- a/src/npc/generate/generateGenetics.js +++ b/src/npc/generate/generateGenetics.js @@ -241,7 +241,7 @@ globalThis.generateGenetics = (function() { if (((actor2 === -2 || actor2 === -5) && V.arcologies[0].FSSupremacistLawME === 1) || (actor2 === -6 && V.arcologies[0].FSSupremacist !== "unset")) { fatherRace = V.arcologies[0].FSSupremacistRace; } else if (((actor2 === -2 || actor2 === -5) && V.arcologies[0].FSSubjugationistLawME === 1) || (actor2 === -6 && V.arcologies[0].FSSubjugationist !== "unset")) { - fatherRace = App.Utils.getNonSubjugationistSlaveRaces().random(); + fatherRace = App.Utils.getRaceArrayWithoutParamRace(V.arcologies[0].FSSubjugationistRace).random(); } } diff --git a/src/npc/generate/generateNewSlaveJS.js b/src/npc/generate/generateNewSlaveJS.js index fdc566a4225eb90f8a9e072c6adfd473bd441fcb..6c995b5c639363cab10e6b204c09d83d026644f6 100644 --- a/src/npc/generate/generateNewSlaveJS.js +++ b/src/npc/generate/generateNewSlaveJS.js @@ -49,7 +49,7 @@ globalThis.GenerateNewSlave = (function() { if (V.arcologies[0].FSSupremacistLawME === 1) { x.race = V.arcologies[0].FSSupremacistRace; } else if (V.arcologies[0].FSSubjugationistLawME === 1) { - x.race = App.Utils.getNonSubjugationistSlaveRaces().random(); + x.race = App.Utils.getRaceArrayWithoutParamRace(V.arcologies[0].FSSubjugationistRace).random(); } else { x.race = 0; } diff --git a/src/npc/generate/heroCreator.js b/src/npc/generate/heroCreator.js index 2d7148c72e3b2525d4f171b58569303f09bfe785..171d67ce0bdb16c1b3f5dbaa8af00c4212ddcb40 100644 --- a/src/npc/generate/heroCreator.js +++ b/src/npc/generate/heroCreator.js @@ -68,13 +68,13 @@ App.Utils.getHeroSlave = function(heroSlave) { // Nationalities, races, surnames random fill if (!heroSlave.nationality) { // Check for a pre-set race and if the nationality fits, else regenerate - if (heroSlave.race && Array.from(setup.filterRaces.keys()).includes(heroSlave.race)) { + if (heroSlave.race && setup.filterRaces.has(heroSlave.race)) { raceToNationality(heroSlave); } else { heroSlave.nationality = hashChoice(V.nationalities); } } - if (!heroSlave.race || !Array.from(setup.filterRaces.keys()).includes(heroSlave.race)) { + if (!heroSlave.race || !setup.filterRaces.has(heroSlave.race)) { nationalityToRace(heroSlave); } if (!heroSlave.birthSurname && heroSlave.birthSurname !== "") { diff --git a/src/uncategorized/pHostageAcquisition.tw b/src/uncategorized/pHostageAcquisition.tw index 78aa833c9f603a1f391b3cbb90f621cb06541366..8a2ff88737a622ff2a26cd7171e9572757f8738c 100644 --- a/src/uncategorized/pHostageAcquisition.tw +++ b/src/uncategorized/pHostageAcquisition.tw @@ -83,7 +83,7 @@ Your hired mercenaries are en route now with your precious cargo. <<if $arcologies[0].FSSubjugationistRace != 0>> <<set _notSupreme = $arcologies[0].FSSubjugationistRace>> <<else>> - <<set _races = App.Utils.getNonSupremacistSlaveRaces>> + <<set _races = App.Utils.getRaceArrayWithoutParamRace($arcologies[0].FSSupremacistRace)>> <<set _notSupreme = _races.random()>> <</if>> <<run WombFatherRace($hostage, _notSupreme)>> diff --git a/src/uncategorized/pRivalryCapture.js b/src/uncategorized/pRivalryCapture.js index 5e6ea55c4de28154f0ae877c2960423b7a7cb677..42ab402d3fb7e2edfced69eae5e0cbaf406f72f7 100644 --- a/src/uncategorized/pRivalryCapture.js +++ b/src/uncategorized/pRivalryCapture.js @@ -76,7 +76,7 @@ globalThis.pRivalryCapture = function() { function createRival() { let slave; const rivalTypeArray = []; - /** @type {string} */ + /** @type {FC.Race} */ let race; let minAge; let maxAge; @@ -103,7 +103,7 @@ globalThis.pRivalryCapture = function() { } rivalType = rivalTypeArray.random(); - if (Array.from(setup.filterRaces.keys()).includes(V.rivalRace)) { + if (V.rivalRace && setup.filterRaces.has(V.rivalRace)) { race = V.rivalRace; } switch (rivalType) {