From cdcd1d44f4bee4afac8e8119819e2e369592f1f0 Mon Sep 17 00:00:00 2001 From: Svornost <11434-svornost@users.noreply.gitgud.io> Date: Sun, 13 Jun 2021 10:59:31 -0700 Subject: [PATCH] - Ensure presence of FSSubjugationistRace and FSSupremacistRace arcology member variables during BC. - Improve typechecking for races. --- js/003-data/miscData.js | 34 ++++++++++--------- .../backwardsCompatibility/datatypeCleanup.js | 16 ++++++--- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/js/003-data/miscData.js b/js/003-data/miscData.js index c64c7f7fa72..d07b7b4df15 100644 --- a/js/003-data/miscData.js +++ b/js/003-data/miscData.js @@ -143,25 +143,27 @@ App.Data.misc = { /* equine: {type: "equine", normalOvaMin:1, normalOvaMax: 1, normalBirth: 48, minLiveBirth: 44, fetusWeek: [0, 4, 7, 9, 10, 12, 17, 21, 25, 34, 38, 48, 192, 99999], fetusSize: [0, 2.5, 3, 4, 6.3, 14, 17.7, 30, 61, 76.2, 92, 121, 235, 235], fetusRate: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] sizeType: 0} */ /** - * @type {Map<string, string>} + * @type {Map<FC.Race, string>} */ - filterRacesBase: new Map([ - ["amerindian", "Amerindian"], - ["asian", "Asian"], - ["black", "Black"], - ["indo-aryan", "Indo-Aryan"], - ["latina", "Latina"], - ["malay", "Malay"], - ["middle eastern", "Middle Eastern"], - ["mixed race", "Mixed Race"], - ["pacific islander", "Pacific Islander"], - ["semitic", "Semitic"], - ["southern european", "Southern European"], - ["white", "White"], - ]), + filterRacesBase: (/** @returns {Map<FC.Race, string>} IIFE required to avoid type widening */ function() { + return new Map([ + ["amerindian", "Amerindian"], + ["asian", "Asian"], + ["black", "Black"], + ["indo-aryan", "Indo-Aryan"], + ["latina", "Latina"], + ["malay", "Malay"], + ["middle eastern", "Middle Eastern"], + ["mixed race", "Mixed Race"], + ["pacific islander", "Pacific Islander"], + ["semitic", "Semitic"], + ["southern european", "Southern European"], + ["white", "White"], + ]); + })(), /** - * @returns {Map<string, string>} + * @returns {Map<FC.Race, string>} */ get filterRaces() { const map = new Map(App.Data.misc.filterRacesBase); diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index ddafc409417..d9ad4953de8 100644 --- a/src/data/backwardsCompatibility/datatypeCleanup.js +++ b/src/data/backwardsCompatibility/datatypeCleanup.js @@ -2562,11 +2562,19 @@ App.Update.arcologiesDatatypeCleanup = function() { } } const raceArray = Array.from(App.Data.misc.filterRaces.keys()); - if (arc.FSSupremacist !== "unset" && !raceArray.includes(arc.FSSupremacistRace)) { - arc.FSSupremacistRace = raceArray.random(); + if (!raceArray.includes(arc.FSSupremacistRace)) { + if (arc.FSSupremacist !== "unset") { + arc.FSSupremacistRace = raceArray.random(); + } else { + arc.FSSupremacistRace = 0; + } } - if (arc.FSSubjugationist !== "unset" && !raceArray.includes(arc.FSSubjugationistRace)) { - arc.FSSubjugationistRace = raceArray.random(); + if (!raceArray.includes(arc.FSSubjugationistRace)) { + if (arc.FSSubjugationist !== "unset") { + arc.FSSubjugationistRace = raceArray.random(); + } else { + arc.FSSubjugationistRace = 0; + } } arc.embargo = Number(arc.embargo) || 0; -- GitLab