From cff654d30f3f63eaf45c86c94ca751991f6efa0a Mon Sep 17 00:00:00 2001
From: Skriv <skrivelese@gmail.com>
Date: Sat, 14 Mar 2020 13:43:16 +0100
Subject: [PATCH] simplify RAFacilityRemove

---
 src/js/rulesAssistant.js | 159 ++++++++++++++-------------------------
 1 file changed, 57 insertions(+), 102 deletions(-)

diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js
index ae2c0f75640..c732c59d9da 100644
--- a/src/js/rulesAssistant.js
+++ b/src/js/rulesAssistant.js
@@ -93,97 +93,51 @@ window.ruleApplied = function(slave, rule) {
 window.RAFacilityRemove = function RAFacilityRemove(slave, rule) {
 	let r = "";
 	if (!rule.facilityRemove) { return r; }
-	switch (rule.setAssignment) {
-		case "be confined in the arcade":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.arcadeName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "work in the brothel":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.brothelName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "serve in the club":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.clubName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "work in the dairy":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.dairyName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "work as farmhand":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.farmyardName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "rest in the spa":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.spaName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "work as a nanny":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.nurseryName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "get treatment in the clinic":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>{slave.slaveName} has been removed from ${V.clinicName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "serve in the master suite":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>{slave.slaveName} has been removed from ${V.masterSuiteName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "live with your Head Girl":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.HGSuiteName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "work as a servant":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.servantsQuartersName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "learn in the schoolroom":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.schoolroomName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
-
-		case "be confined in the cellblock":
-			if (slave.assignment === rule.setAssignment) {
-				r += `<br>${slave.slaveName} has been removed from ${V.cellblockName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave, rule.removalAssignment);
-			}
-			break;
+	if (slave.assignment === rule.setAssignment) {
+		let facilityName;
+		switch (rule.setAssignment) {
+			case "be confined in the arcade":
+				facilityName = V.arcadeName;
+				break;
+			case "work in the brothel":
+				facilityName = V.brothelName;
+				break;
+			case "serve in the club":
+				facilityName = V.clubName;
+				break;
+			case "work in the dairy":
+				facilityName = V.dairyName;
+				break;
+			case "work as farmhand":
+				facilityName = V.farmyardName;
+				break;
+			case "rest in the spa":
+				facilityName = V.spaName;
+				break;
+			case "work as a nanny":
+				facilityName = V.nurseryName;
+				break;
+			case "get treatment in the clinic":
+				facilityName = V.clinicName;
+				break;
+			case "serve in the master suite":
+				facilityName = V.masterSuiteName;
+				break;
+			case "live with your Head Girl":
+				facilityName = V.HGSuiteName;
+				break;
+			case "work as a servant":
+				facilityName = V.servantsQuartersName;
+				break;
+			case "learn in the schoolroom":
+				facilityName = V.schoolroomName;
+				break;
+			case "be confined in the cellblock":
+				facilityName = V.cellblockName;
+				break;
+		}
+		r += `<br>${slave.slaveName} has been removed from ${facilityName} and has been assigned to ${rule.removalAssignment}.`;
+		assignJob(slave, rule.removalAssignment);
 	}
 };
 
@@ -194,23 +148,24 @@ window.RAFacilityRemove = function RAFacilityRemove(slave, rule) {
  * @returns {boolean} flag */
 window.ruleAppliesP = function ruleAppliesP(cond, slave) {
 	let flag = true;
+	let slaveAttribute = slave[cond.data.attribute];
+
 	// attribute / function check
 	switch (cond.function) {
 		case false: // never applies
 			flag = false;
 			break;
 		case "between": // between two values of a slave's attribute
-			let slaveAttribute = slave[cond.data.attribute];
 			if (slaveAttribute === undefined && cond.data.attribute.includes(".")) {
 				slaveAttribute = cond.data.attribute
-				.split(".")
-				.reduce(
-					(reduceSlave, attribute) =>
-					(reduceSlave && reduceSlave[attribute] !== undefined)
-						? reduceSlave[attribute]
-						: undefined,
-					slave
-				);
+					.split(".")
+					.reduce(
+						(reduceSlave, attribute) =>
+							(reduceSlave && reduceSlave[attribute] !== undefined)
+								? reduceSlave[attribute]
+								: undefined,
+						slave
+					);
 			}
 			flag = between(
 				slaveAttribute,
@@ -512,9 +467,9 @@ window.RASummaryCell = function() {
 
 		function ruleSetValueToString(v) {
 			if (typeof v === 'object') {
-				if(v.hasOwnProperty('cond') && v.hasOwnProperty('val')) {
+				if (v.hasOwnProperty('cond') && v.hasOwnProperty('val')) {
 					return `<nowiki>${v.cond}</nowiki>&nbsp;${v.val}`;
-				} else if(v.hasOwnProperty('min') && v.hasOwnProperty('max')) {
+				} else if (v.hasOwnProperty('min') && v.hasOwnProperty('max')) {
 					return `${v.min} to ${v.max}`;
 				} else {
 					return JSON.stringify(v);
-- 
GitLab