From 40050f17ef5920ffb85f2ff6418efe29230e0c1c Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Sat, 5 Dec 2020 23:29:22 -0500
Subject: [PATCH] simplify list generation

---
 src/facilities/fsDecoration.js | 52 +++++++++++++++++++---------------
 1 file changed, 29 insertions(+), 23 deletions(-)

diff --git a/src/facilities/fsDecoration.js b/src/facilities/fsDecoration.js
index 735f7464814..5529b78909b 100644
--- a/src/facilities/fsDecoration.js
+++ b/src/facilities/fsDecoration.js
@@ -5,9 +5,14 @@ App.UI.facilityRedecoration = function() {
 	const el = new DocumentFragment();
 	const activeFacilities = new Map([]);
 	const options = new App.UI.OptionsGroup();
+	const arc = V.arcologies[0];
 
 	FutureSocieties.DecorationCleanup();
 
+	/** @type {Array<keyof FC.FutureSocietyIdMap>} */
+	const validDecorations = FutureSocieties.activeFSes(arc).filter(name => (arc[name] > 20));
+	const decorationNames =  Array.from(validDecorations, name => FutureSocieties.decorationName(name));
+
 	if (V.brothel > 0) {
 		activeFacilities.set(V.brothelName, "brothelDecoration");
 	}
@@ -70,18 +75,12 @@ App.UI.facilityRedecoration = function() {
 	function createPulldown(option, variable) {
 		const select = document.createElement("select");
 		select.classList.add("rajs-list");
-		const arc = V.arcologies[0];
-		for (const FS of FutureSocieties.activeFSes(arc)) {
-			if (arc[FS] > 20) {
-				const decorationName = FutureSocieties.decorationName(FS);
-				if (decorationName) {
-					const choice = App.UI.DOM.makeElement("option", decorationName, "indent");
-					if (V[variable] === decorationName) {
-						choice.selected = true;
-					}
-					select.append(choice);
-				}
+		for (const decorationName of decorationNames) {
+			const choice = App.UI.DOM.makeElement("option", decorationName, "indent");
+			if (V[variable] === decorationName) {
+				choice.selected = true;
 			}
+			select.append(choice);
 		}
 		const choice = App.UI.DOM.makeElement("option", "standard", "indent");
 		if (V[variable] === "standard") {
@@ -104,25 +103,32 @@ App.UI.facilityRedecoration = function() {
 	function modifyAll(option) {
 		const select = document.createElement("select");
 		select.classList.add("rajs-list");
-		const arc = V.arcologies[0];
-		for (const FS of FutureSocieties.activeFSes(arc)) {
-			if (arc[FS] > 20) {
-				const decorationName = FutureSocieties.decorationName(FS);
-				if (decorationName) {
-					App.UI.DOM.appendNewElement("option", select, decorationName, "indent");
-				}
-			}
+		for (const decorationName of decorationNames) {
+			App.UI.DOM.appendNewElement("option", select, decorationName, "indent");
 		}
 		App.UI.DOM.appendNewElement("option", select, "standard", "indent");
 
+		App.UI.DOM.appendNewElement("option", select, "Distribute Evenly", "indent");
+
 		select.onchange = () => {
 			const O = select.options[select.selectedIndex];
-			for (const decoration of activeFacilities.values()) {
-				if (O.value !== "standard") {
-					cashX(-5000, "capEx");
+			if (O.value === "Distribute Evenly") {
+				let i = 0;
+				for (const decoration of activeFacilities.values()) {
+					if (O.value !== "standard") {
+						cashX(-5000, "capEx");
+					}
+					V[decoration] = O.value;
+				}
+			} else {
+				for (const decoration of activeFacilities.values()) {
+					if (O.value !== "standard") {
+						cashX(-5000, "capEx");
+					}
+					V[decoration] = O.value;
 				}
-				V[decoration] = O.value;
 			}
+			
 			App.UI.reload();
 		};
 		select.selectedIndex = -1;
-- 
GitLab