From e6b220ea3b24e52a75f9d065e8b59fc0323d8c3b Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Wed, 3 Jun 2020 20:12:06 -0400
Subject: [PATCH] hips

---
 src/npc/descriptions/hips/hips.js      | 96 ++++++++++++++++++++++++++
 src/utility/descriptionWidgetsFlesh.tw | 81 +---------------------
 2 files changed, 97 insertions(+), 80 deletions(-)
 create mode 100644 src/npc/descriptions/hips/hips.js

diff --git a/src/npc/descriptions/hips/hips.js b/src/npc/descriptions/hips/hips.js
new file mode 100644
index 00000000000..772fa4d5676
--- /dev/null
+++ b/src/npc/descriptions/hips/hips.js
@@ -0,0 +1,96 @@
+App.Desc.hips = function(slave) {
+	const r = [];
+	let frag;
+	const {
+		he, him, his, hers, himself, boy, He, His
+	} = getPronouns(slave);
+	if (slave.hips < -1) {
+		if (slave.butt > 2) {
+			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r.push(`disproportionately large for ${his} narrow hips, but your hedonistic arcology finds this attractive.`);
+			} else if (V.arcologies[0].FSTransformationFetishist !== "unset") {
+				r.push(`disproportionately large for ${his} narrow hips, but your transformation fetishist arcology considers this attractive.`);
+			} else if (V.arcologies[0].FSAssetExpansionist !== "unset") {
+				r.push(`disproportionately large for ${his} narrow hips, but that's just fine to your asset expansionist society.`);
+			} else {
+				r.push(`<span class="red">disproportionately large</span> for ${his} narrow hips.`);
+			}
+		} else {
+			r.push(`and ${his} hips are very narrow.`);
+		}
+	} else if (slave.hips < 0) {
+		if (slave.butt > 4) {
+			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r.push(`disproportionately large for ${his} trim hips, but your hedonistic arcology finds this attractive.`);
+			} else if (V.arcologies[0].FSTransformationFetishist !== "unset") {
+				r.push(`disproportionately large for ${his} trim hips, but your transformation fetishist arcology considers this attractive.`);
+			} else if (V.arcologies[0].FSAssetExpansionist !== "unset") {
+				r.push(`disproportionately large for ${his} trim hips, but that's just fine to your asset expansionist society.`);
+			} else {
+				r.push(`<span class="red">disproportionately large</span> for ${his} trim hips.`);
+			}
+		} else {
+			r.push(`complemented by ${his} trim hips.`);
+		}
+	} else if (slave.hips > 2) {
+		if (slave.butt <= 8) {
+			r.push(`<span class="red">disproportionately small</span> for ${his} monstrous hips.`);
+		} else {
+			r.push(`fitting for ${his} monstrous hips.`);
+		}
+	} else if (slave.hips > 1) {
+		if (slave.butt <= 3 && (V.arcologies[0].FSSlimnessEnthusiast === "unset" || (slave.boobs >= 500))) {
+			r.push(`<span class="red">disproportionately small</span> for ${his} very wide`);
+			if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
+				r.push(`hips, which your arcology finds unattractive on busty slaves.`);
+			} else {
+				r.push(`hips.`);
+			}
+		} else {
+			r.push(`flattered by ${his} very wide hips.`);
+		}
+	} else if (slave.hips > 0) {
+		if (slave.butt > 8) {
+			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r.push(`disproportionately large for ${his} broad hips, but your hedonistic arcology finds this attractive.`);
+			} else if (V.arcologies[0].FSTransformationFetishist !== "unset") {
+				r.push(`disproportionately large for ${his} broad hips, but your transformation fetishist arcology considers this attractive.`);
+			} else if (V.arcologies[0].FSAssetExpansionist !== "unset") {
+				r.push(`disproportionately large for ${his} broad hips, but that's just fine to your asset expansionist society.`);
+			} else {
+				r.push(`<span class="red">disproportionately large</span> for ${his} broad hips.`);
+			}
+		} else if (slave.butt <= 2 && (V.arcologies[0].FSSlimnessEnthusiast === "unset" || (slave.boobs >= 500))) {
+			r.push(`<span class="red">disproportionately small</span> for ${his} broad`);
+			if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
+				r.push(`hips, which your arcology finds unattractive on busty slaves.`);
+			} else {
+				r.push(`hips.`);
+			}
+		} else {
+			r.push(`complemented by ${his} broad hips.`);
+		}
+	} else {
+		if (slave.butt > 6) {
+			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r.push(`disproportionately large for ${his} womanly hips, but your hedonistic arcology finds this attractive.`);
+			} else if (V.arcologies[0].FSTransformationFetishist !== "unset") {
+				r.push(`disproportionately large for ${his} womanly hips, but your transformation fetishist arcology considers this attractive.`);
+			} else if (V.arcologies[0].FSAssetExpansionist !== "unset") {
+				r.push(`disproportionately large for ${his} womanly hips, but that's just fine to your asset expansionist society.`);
+			} else {
+				r.push(`<span class="red">disproportionately large</span> for ${his} womanly hips.`);
+			}
+		} else if (slave.butt <= 1 && (V.arcologies[0].FSSlimnessEnthusiast === "unset" || (slave.boobs >= 500))) {
+			r.push(`<span class="red">disproportionately small</span> for ${his} ample`);
+			if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
+				r.push(`hips, which your arcology finds unattractive on busty slaves.`);
+			} else {
+				r.push(`hips.`);
+			}
+		} else {
+			r.push(`complemented by ${his} ample hips.`);
+		}
+	}
+	return r.join(" ");
+};
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 97079edc23a..b62184bdac2 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -949,7 +949,7 @@ $He's got a
 	<</if>>
 <</if>>
 
-<<hipsDescription>>
+<<= App.Desc.hips($activeSlave)>>
 
 <<if $showImplantEffects == 1>>
 	<<if $activeSlave.fuckdoll > 0>>
@@ -5497,85 +5497,6 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 
 <</widget>>
 
-
-<<widget "hipsDescription">>
-
-<<if $activeSlave.hips < -1>>
-	<<if $activeSlave.butt > 2>>
-		<<if $arcologies[0].FSHedonisticDecadence != "unset">>
-			disproportionately large for $his narrow hips, but your hedonistic arcology finds this attractive.
-		<<elseif $arcologies[0].FSTransformationFetishist != "unset">>
-			disproportionately large for $his narrow hips, but your transformation fetishist arcology considers this attractive.
-		<<elseif $arcologies[0].FSAssetExpansionist != "unset">>
-			disproportionately large for $his narrow hips, but that's just fine to your asset expansionist society.
-		<<else>>
-			@@.red;disproportionately large@@ for $his narrow hips.
-		<</if>>
-	<<else>>
-		and $his hips are very narrow.
-	<</if>>
-<<elseif $activeSlave.hips < 0>>
-	<<if $activeSlave.butt > 4>>
-		<<if $arcologies[0].FSHedonisticDecadence != "unset">>
-			disproportionately large for $his trim hips, but your hedonistic arcology finds this attractive.
-		<<elseif $arcologies[0].FSTransformationFetishist != "unset">>
-			disproportionately large for $his trim hips, but your transformation fetishist arcology considers this attractive.
-		<<elseif $arcologies[0].FSAssetExpansionist != "unset">>
-			disproportionately large for $his trim hips, but that's just fine to your asset expansionist society.
-		<<else>>
-			@@.red;disproportionately large@@ for $his trim hips.
-		<</if>>
-	<<else>>
-		complemented by $his trim hips.
-	<</if>>
-<<elseif $activeSlave.hips > 2>>
-	<<if $activeSlave.butt <= 8>>
-		@@.red;disproportionately small@@ for $his monstrous hips.
-	<<else>>
-		fitting for $his monstrous hips.
-	<</if>>
-<<elseif $activeSlave.hips > 1>>
-	<<if $activeSlave.butt <= 3 && ($arcologies[0].FSSlimnessEnthusiast == "unset" || ($activeSlave.boobs >= 500))>>
-		@@.red;disproportionately small@@ for $his very wide hips<<if $arcologies[0].FSSlimnessEnthusiast != "unset">>, which your arcology finds unattractive on busty slaves.<<else>>.<</if>>
-	<<else>>
-		flattered by $his very wide hips.
-	<</if>>
-<<elseif $activeSlave.hips > 0>>
-	<<if $activeSlave.butt > 8>>
-		<<if $arcologies[0].FSHedonisticDecadence != "unset">>
-			disproportionately large for $his broad hips, but your hedonistic arcology finds this attractive.
-		<<elseif $arcologies[0].FSTransformationFetishist != "unset">>
-			disproportionately large for $his broad hips, but your transformation fetishist arcology considers this attractive.
-		<<elseif $arcologies[0].FSAssetExpansionist != "unset">>
-			disproportionately large for $his broad hips, but that's just fine to your asset expansionist society.
-		<<else>>
-			@@.red;disproportionately large@@ for $his broad hips.
-		<</if>>
-	<<elseif $activeSlave.butt <= 2 && ($arcologies[0].FSSlimnessEnthusiast == "unset" || ($activeSlave.boobs >= 500))>>
-		@@.red;disproportionately small@@ for $his broad hips<<if $arcologies[0].FSSlimnessEnthusiast != "unset">>, which your arcology finds unattractive on busty slaves.<<else>>.<</if>>
-	<<else>>
-		complemented by $his broad hips.
-	<</if>>
-<<else>>
-	<<if $activeSlave.butt > 6>>
-		<<if $arcologies[0].FSHedonisticDecadence != "unset">>
-			disproportionately large for $his womanly hips, but your hedonistic arcology finds this attractive.
-		<<elseif $arcologies[0].FSTransformationFetishist != "unset">>
-			disproportionately large for $his womanly hips, but your transformation fetishist arcology considers this attractive.
-		<<elseif $arcologies[0].FSAssetExpansionist != "unset">>
-			disproportionately large for $his womanly hips, but that's just fine to your asset expansionist society.
-		<<else>>
-			@@.red;disproportionately large@@ for $his womanly hips.
-		<</if>>
-	<<elseif $activeSlave.butt <= 1 && ($arcologies[0].FSSlimnessEnthusiast == "unset" || ($activeSlave.boobs >= 500))>>
-		@@.red;disproportionately small@@ for $his ample hips<<if $arcologies[0].FSSlimnessEnthusiast != "unset">>, which your arcology finds unattractive on busty slaves.<<else>>.<</if>>
-	<<else>>
-		complemented by $his ample hips.
-	<</if>>
-<</if>>
-
-<</widget>>
-
 <<widget "heightImplantDescription">>
 
 <<if $activeSlave.heightImplant > 1>>
-- 
GitLab