From 42688dd24a4258a58cb64f9a673ea8ab8b735d38 Mon Sep 17 00:00:00 2001
From: Skriv <skrivelese@gmail.com>
Date: Tue, 28 May 2019 17:03:58 +0200
Subject: [PATCH] undo slimPass

---
 src/endWeek/saServeThePublic.js               |  2 +-
 src/endWeek/saWhore.js                        |  2 +-
 .../nursery/longChildDescription.tw           |  2 +-
 src/js/slaveCostJS.js                         |  2 +-
 src/js/slaveStatsChecker.js                   | 57 +++++++++++++------
 src/uncategorized/longSlaveDescription.tw     |  2 +-
 6 files changed, 44 insertions(+), 23 deletions(-)

diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index cb278d85018..dbfc5aef7a0 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -745,7 +745,7 @@ window.saServeThePublic = (function saServeThePublic() {
 				}
 			}
 		} else if (arcology.FSSlimnessEnthusiastLaw === 1) {
-			if (isSlim(slave)) {
+			if (slimLawPass(slave) === 1) {
 				r += ` The public enjoys ${his} fashionably sleek little body.`;
 				if (canTalk(slave) && slave.voice > 2) {
 					r += ` ${His} high voice contributes to ${his} girlish image, so ${he} does even better.`;
diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js
index 497bfb5ec97..9ea96fa1546 100644
--- a/src/endWeek/saWhore.js
+++ b/src/endWeek/saWhore.js
@@ -907,7 +907,7 @@ window.saWhore = (function saWhore() {
 				}
 			}
 		} else if (arcology.FSSlimnessEnthusiastLaw === 1) {
-			if (isSlim(slave)) {
+			if (slimLawPass(slave) === 1) {
 				r += ` ${He} makes extra ¤ due to ${his} fashionably sleek little body.`;
 				if (canTalk(slave) && slave.voice > 2) {
 					r += ` ${His} high voice contributes to ${his} girlish image, so ${he} does even better.`;
diff --git a/src/facilities/nursery/longChildDescription.tw b/src/facilities/nursery/longChildDescription.tw
index fae281dfdcb..8005318bb72 100644
--- a/src/facilities/nursery/longChildDescription.tw
+++ b/src/facilities/nursery/longChildDescription.tw
@@ -865,7 +865,7 @@ is
 		$His body is a perfect example of the fashionable feminine ideal.
 	<</if>>
 <<elseif $arcologies[0].FSSlimnessEnthusiastLaw == 1>>
-	<<if isSlim($activeChild)>>
+	<<if slimLawPass($activeChild) == 1>>
 		$His body is a perfect example of the fashionable ideal flat body.
 	<</if>>
 <<elseif $arcologies[0].FSHedonisticDecadenceLaw2 == 1>>
diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js
index 39a6e2df3d9..de5ae36715a 100644
--- a/src/js/slaveCostJS.js
+++ b/src/js/slaveCostJS.js
@@ -1239,7 +1239,7 @@ window.Beauty = (function() {
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function calcSlimBeauty(slave) {
-		if (isSlim(slave)) {
+		if (slimLawPass(slave) === 1) {
 			beauty += 40 + (arcology.FSSlimnessEnthusiast / 20); /* 45 */
 		} else {
 			beauty -= arcology.FSSlimnessEnthusiast / 20;
diff --git a/src/js/slaveStatsChecker.js b/src/js/slaveStatsChecker.js
index 5a25da6c41e..4cbc7c259ba 100644
--- a/src/js/slaveStatsChecker.js
+++ b/src/js/slaveStatsChecker.js
@@ -14,8 +14,8 @@ window.SlaveStatsChecker = (function() {
 		return (slave.lips > 70 || (slave.lipsPiercing + slave.tonguePiercing > 2) || slave.teeth === "gapped");
 	}
 
-	/* call as SlaveStatsChecker.modScore() */
-	/**
+
+	/** call as SlaveStatsChecker.modScore()
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {number} // I think
 	 */
@@ -26,8 +26,8 @@ window.SlaveStatsChecker = (function() {
 		return V.tatScore + V.piercingScore;
 	}
 
-	/* helper function, not callable */
 	/**
+	 * helper function, not callable
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {number}
 	 */
@@ -80,8 +80,8 @@ window.SlaveStatsChecker = (function() {
 		return score;
 	}
 
-	/* helper function, not callable */
 	/**
+	 * helper function, not callable
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {number}
 	 */
@@ -147,8 +147,8 @@ window.SlaveStatsChecker = (function() {
 		return score;
 	}
 
-	/* call as SlaveStatsChecker.isModded() */
 	/**
+	 * call as SlaveStatsChecker.isModded()
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {boolean}
 	 */
@@ -160,8 +160,8 @@ window.SlaveStatsChecker = (function() {
 		return (mods > 15 || (piercings > 8 && tattoos > 5));
 	}
 
-	/* call as SlaveStatsChecker.isUnmodded() */
 	/**
+	 * call as SlaveStatsChecker.isUnmodded()
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {boolean}
 	 */
@@ -183,18 +183,9 @@ window.isSlim = function(slave) {
 	const ArcologyZero = State.variables.arcologies[0];
 
 	if (ArcologyZero.FSSlimnessEnthusiastLaw === 1) {
-		if ((slave.boobs < 300) && (slave.butt <= 1) && (slave.waist <= 10)) {
-			if ((slave.muscles <= 30) && (ArcologyZero.FSPhysicalIdealist !== "unset") && (ArcologyZero.FSHedonisticDecadenceStrongFat === 1)) {
-				slim = true;
-			} else if ((ArcologyZero.FSHedonisticDecadence === "unset") || (ArcologyZero.FSPhysicalIdealistStrongFat !== 1)) {
-				if (slave.weight <= 30) {
-					slim = true;
-				}
-			} else if (slave.weight <= 10) {
-				slim = true;
-			}
-		}
-	} else if ((slave.boobs < 500) && (slave.butt < 3)) {
+		return (slimLawPass(slave) === 1);
+	}
+	if ((slave.boobs < 500) && (slave.butt < 3)) {
 		if ((slave.muscles <= 30) && (ArcologyZero.FSPhysicalIdealist === "unset") && (slave.weight <= 10) && (ArcologyZero.FSHedonisticDecadence === "unset")) {
 			slim = true;
 		} else if (ArcologyZero.FSPhysicalIdealist !== "unset") {
@@ -214,6 +205,36 @@ window.isSlim = function(slave) {
 	return slim;
 };
 
+/**
+ * Returns if slave is considered slim or not by Slimness Enthusiast Law.
+ * @param {App.Entity.SlaveState} slave
+ * @returns {number} 1: yes, 0: no
+ */
+window.slimLawPass = function(slave) {
+	let slimLawPass = 0;
+	const ArcologyZero = State.variables.arcologies[0];
+
+	if (ArcologyZero.FSSlimnessEnthusiastLaw === 1) {
+		if ((slave.boobs < 300) && (slave.butt <= 1) && (slave.waist <= 10)) {
+			if ((ArcologyZero.FSPhysicalIdealist === "unset") && (ArcologyZero.FSHedonisticDecadenceStrongFat === 0) && (slave.muscles > 30)) {
+			/* muscle check*/
+				slimLawPass = 0;
+			} else if ((ArcologyZero.FSHedonisticDecadence !== "unset") || (ArcologyZero.FSPhysicalIdealistStrongFat === 1)) {
+			/* weight check*/
+				if (slave.weight > 30) {
+					slimLawPass = 0;
+				}
+			} else if (slave.weight > 10) {
+				slimLawPass = 0;
+			} else {
+				slimLawPass = 1;
+			}
+		}
+	}
+
+	return slimLawPass;
+};
+
 /**
  * Returns if slave is considered stacked (big T&A) or not.
  * @param {App.Entity.SlaveState} slave
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index e2c7ebdba37..ce7d69a1e1e 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -1668,7 +1668,7 @@ is
 		$His body is a perfect example of the fashionable feminine ideal.
 	<</if>>
 <<elseif $arcologies[0].FSSlimnessEnthusiastLaw == 1>>
-	<<if isSlim($activeSlave)>>
+	<<if slimLawPass($activeSlave) == 1>>
 		$His body is a perfect example of the fashionable ideal flat body.
 	<</if>>
 <<elseif $arcologies[0].FSHedonisticDecadenceLaw2 == 1>>
-- 
GitLab