From 29a21532fb53cdc543286037fc3b26c3d5929b43 Mon Sep 17 00:00:00 2001 From: lowercasedonkey <lowercasedonkey@gmail.com> Date: Tue, 16 Feb 2021 02:06:41 -0500 Subject: [PATCH] first pass on filter races --- src/Corporation/manageCorporation.js | 3 +-- src/events/intro/customizeSlaveTrade.js | 14 +++++++------- src/events/intro/pcAppearance.js | 4 ++-- src/facilities/surgery/surgeryPassageExotic.js | 4 ++-- src/js/rulesAssistantOptions.js | 4 ++-- src/markets/specificMarkets/customSlaveMarket.js | 4 ++-- src/markets/specificMarkets/huskSlave.js | 14 +++++++------- 7 files changed, 23 insertions(+), 24 deletions(-) diff --git a/src/Corporation/manageCorporation.js b/src/Corporation/manageCorporation.js index 427c1ec2774..9735544ef96 100644 --- a/src/Corporation/manageCorporation.js +++ b/src/Corporation/manageCorporation.js @@ -1,8 +1,7 @@ App.Corporate.corpRaces = function() { const el = new DocumentFragment(); App.UI.DOM.appendNewElement("div", el, `The corporation enslaves people of the following race${V.corp.SpecRaces.length === 1 ? ``:`s`}:`); - for (const race of App.Data.misc.filterRacesLowercase) { - const capRace = App.Data.misc.filterRaces[App.Data.misc.filterRacesLowercase.indexOf(race)]; + for (const [race, capRace] of App.Data.misc.filterRaces) { const r = []; if (V.corp.SpecRaces.includes(race)) { r.push(capRace); diff --git a/src/events/intro/customizeSlaveTrade.js b/src/events/intro/customizeSlaveTrade.js index e6a5083c791..36f486b5ae8 100644 --- a/src/events/intro/customizeSlaveTrade.js +++ b/src/events/intro/customizeSlaveTrade.js @@ -50,20 +50,20 @@ App.Intro.CustomSlaveTrade = function() { div = document.createElement("div"); App.UI.DOM.appendNewElement("span", div, `Filter by Race: `); array = []; - for (const race of setup.filterRaces) { - if (baseControlsFilter === uncapFirstChar(race).replace(/[ -]/g, '')) { + for (const [race, raceCap] of setup.filterRaces) { + if (baseControlsFilter === race) { array.push( App.UI.DOM.disabledLink( - race, + raceCap, ["currently selected race"] ) ); } else { array.push( App.UI.DOM.link( - race, + raceCap, () => { - baseControlsFilter = uncapFirstChar(race).replace(/[ -]/g, ''); + baseControlsFilter = race; refresh(); } ) @@ -166,10 +166,10 @@ App.Intro.CustomSlaveTrade = function() { App.UI.DOM.appendNewElement("div", p, `By dominant race/ethnicity (hover over the name to see the nationalities affected):`); list = document.createElement("UL"); list.classList.add("customize-slave-trade-ul"); - for (const race of setup.filterRaces) { + for (const race of setup.filterRaces.keys()) { const racialNationalities = setup.baseNationalities.filter(function(n) { let races = setup.raceSelector[n] || setup.raceSelector['']; - return races[race.toLowerCase()] * 3.5 > hashSum(races); + return races[race] * 3.5 > hashSum(races); }); if (racialNationalities.length > 0) { diff --git a/src/events/intro/pcAppearance.js b/src/events/intro/pcAppearance.js index 5d40d545c24..c09881efa53 100644 --- a/src/events/intro/pcAppearance.js +++ b/src/events/intro/pcAppearance.js @@ -6,11 +6,11 @@ App.UI.Player.appearance = function(options) { .addComment("For best result capitalize it.").pulldown(); options.addOption("Your race is", "race", V.PC).showTextBox() - .addValueList(Array.from(setup.filterRaces, (k => [k, k.toLowerCase()]))); + .addValueList(Array.from(App.Data.filterRaces, ((k, v) => [v, k]))); if (V.cheatMode) { options.addOption("Your race is", "origRace", V.PC).showTextBox() - .addValueList(Array.from(setup.filterRaces, (k => [k, k.toLowerCase()]))); + .addValueList(Array.from(App.Data.filterRaces, ((k, v) => [v, k]))); } options.addOption("Your skin tone is", "skin", V.PC).showTextBox() diff --git a/src/facilities/surgery/surgeryPassageExotic.js b/src/facilities/surgery/surgeryPassageExotic.js index d21a052f57e..4a4156e48be 100644 --- a/src/facilities/surgery/surgeryPassageExotic.js +++ b/src/facilities/surgery/surgeryPassageExotic.js @@ -34,13 +34,13 @@ App.UI.surgeryPassageExotic = function(slave, cheat = false) { if (slave.indentureRestrictions > 1) { App.UI.DOM.appendNewElement("div", el, `${His} indenture forbids elective surgery`, ["choices", "note"]); } else { - for (const race of App.Data.misc.filterRacesLowercase) { + for (const [race, raceCap] of App.Data.misc.filterRacesLowercase) { if (slave.race === race) { continue; } linkArray.push( makeLink( - App.Data.misc.filterRaces[App.Data.misc.filterRacesLowercase.indexOf(race)], + raceCap, "race", () => { slave.race = race; diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 631b199c498..132c5a6bb4b 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -2454,8 +2454,8 @@ App.RA.options = (function() { if (V.pregnancyMonitoringUpgrade === 1 && V.geneticMappingUpgrade >= 1) { pairs.push(["boys", "male"]); pairs.push(["girls", "female"]); - for (let i = 0; i < App.Data.misc.filterRaces.length; ++i) { - pairs.push([App.Data.misc.filterRaces[i], "race:" + App.Data.misc.filterRacesLowercase[i]]); + for (const [race, raceCap] of setup.filterRaces) { + pairs.push([raceCap, "race:" + race]); } } super("Pregnancy termination", pairs); diff --git a/src/markets/specificMarkets/customSlaveMarket.js b/src/markets/specificMarkets/customSlaveMarket.js index 5838770da2f..d21524a14a9 100644 --- a/src/markets/specificMarkets/customSlaveMarket.js +++ b/src/markets/specificMarkets/customSlaveMarket.js @@ -301,8 +301,8 @@ App.Markets["Custom Slave"] = function() { const choices = new Map([ ["ethnicity is unimportant", "Ethnicity is unimportant"], ]); - for (const race of App.Data.misc.filterRaces) { - choices.set(race.toLowerCase(), race); + for (const [race, raceCap] of App.Data.misc.filterRaces) { + choices.set(race, raceCap); } createDescription(el, description, slaveProperty); diff --git a/src/markets/specificMarkets/huskSlave.js b/src/markets/specificMarkets/huskSlave.js index ff4e664200f..ee9a9d18b79 100644 --- a/src/markets/specificMarkets/huskSlave.js +++ b/src/markets/specificMarkets/huskSlave.js @@ -98,22 +98,22 @@ App.Markets["Husk Slave"] = function() { ); const linkArray = []; - const raceUpper = App.Data.misc.filterRaces.concat(["Not Important"]); - const raceLower = App.Data.misc.filterRacesLowercase.concat(["not important"]); - for (let i = 0; i < raceUpper.length; i++) { - if (V.huskSlave.race === raceLower[i]) { + const race = new Map(App.Data.misc.filterRaces); + race.set("Not Important", "not important"); + for (const [race, raceCap] of setup.filterRaces) { + if (V.huskSlave.race === race) { linkArray.push( App.UI.DOM.disabledLink( - raceUpper[i], + raceCap, ["current selection"] ) ); } else { linkArray.push( App.UI.DOM.link( - raceUpper[i], + raceCap, () => { - V.huskSlave.race = raceLower[i]; + V.huskSlave.race = race; refresh(); } ) -- GitLab