From 3251e4235e801618a0900a8a6f3cca88dfc41500 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Tue, 21 Apr 2020 21:16:21 -0400
Subject: [PATCH] diet

---
 src/interaction/slaveInteract.js   | 86 ++++++++++++++++++++++++++++++
 src/uncategorized/slaveInteract.tw | 55 ++-----------------
 2 files changed, 90 insertions(+), 51 deletions(-)

diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js
index 71ed7432953..5a144678653 100644
--- a/src/interaction/slaveInteract.js
+++ b/src/interaction/slaveInteract.js
@@ -596,7 +596,92 @@ App.UI.SlaveInteract.hormones = function(slave) {
 };
 
 
+App.UI.SlaveInteract.diet = function(slave) {
+	const {
+		// eslint-disable-next-line no-unused-vars
+		he,
+		him,
+		his,
+		hers,
+		himself,
+		boy,
+		He,
+		His
+	} = getPronouns(slave);
+	let el = document.createElement('div');
+	const options = [];
+
+	options.push({text: `Healthy`, updateSlave: {diet: "healthy"}});
+	if (V.dietCleanse === 1) {
+		if (slave.health.condition < 90 || slave.chem >= 10) {
+			options.push({text: `Cleanse`, updateSlave: {diet: "cleansing"}});
+		} else {
+			options.push({text: `Cleanse`, disabled: `${He} is already healthy`});
+		}
+	}
+	if (slave.balls > 0 && V.cumProDiet === 1) {
+		options.push({text: `Cum production`, updateSlave: {diet: "cum production"}});
+	}
+	if (isFertile(slave) && slave.preg === 0 && V.dietFertility === 1) {
+		options.push({text: `Fertility`, updateSlave: {diet: "fertility"}});
+	}
+	if (slave.weight >= -95) {
+		options.push({text: `Lose weight`, updateSlave: {diet: "restricted"}});
+	} else {
+		options.push({text: `Lose weight`, disabled: `${He} is already underweight`});
+	}
+	if (slave.fuckdoll === 0 && slave.fetish !== "mindbroken" && V.feeder === 1) {
+		if (slave.weight > 10 || slave.weight < -10) {
+			options.push({text: `Correct weight`, updateSlave: {diet: "corrective"}});
+		} else {
+			options.push({text: `Correct weight`, disabled: `${He} is already a healthy weight`});
+		}
+	}
+	if (slave.weight <= 200) {
+		options.push({text: `Fatten`, updateSlave: {diet: "fattening"}});
+	} else {
+		options.push({text: `Fatten`, disabled: `${He} is already overweight`});
+	}
+	if (V.feeder === 1) {
+		options.push({text: `Estrogen enriched`, updateSlave: {diet: "XX"}});
+		options.push({text: `Testosterone enriched`, updateSlave: {diet: "XY"}});
+		if (V.dietXXY === 1 && slave.balls > 0 && (slave.ovaries === 1 || slave.mpreg === 1)) {
+			options.push({text: `Herm hormone blend`, updateSlave: {diet: "XXY"}});
+		}
+	}
+
+	if (slave.muscles <= 95 && !isAmputee(slave)) {
+		options.push({text: `Build muscle`, updateSlave: {diet: "muscle building"}});
+	} else if (!isAmputee(slave)) {
+		options.push({text: `Build muscle`, disabled: `${He} is maintaining ${his} enormous musculature`});
+	} else {
+		options.push({text: `Build muscle`, disabled: `${He} has no limbs and thus can't effectively build muscle`});
+	}
+
+	if ((slave.muscles > 5 || slave.fuckdoll === 0) && canWalk(slave)) {
+		options.push({text: `Slim down`, updateSlave: {diet: "slimming"}});
+	} else if (!canWalk(slave)) {
+		options.push({text: `Slim down`, disabled: `${He} can't move and thus can't trim down`});
+	} else if (slave.fuckdoll > 0) {
+		options.push({text: `Slim down`, disabled: `${He} has no muscles left to lose`});
+	}
 
+	let title = document.createElement('div');
+	title.textContent = `Diet: `;
+	let choice = document.createElement('span');
+	choice.style.fontWeight = "bold";
+	choice.textContent = `${capFirstChar(slave.diet)} `;
+
+	title.append(choice);
+	el.append(title);
+
+	let links = document.createElement('div');
+	links.appendChild(App.UI.SlaveInteract.generateRows(options, slave));
+	links.className = "choices";
+	el.append(links);
+
+	return jQuery('#diet').empty().append(el);
+};
 
 
 App.UI.SlaveInteract.useSlaveDisplay = function(slave) {
@@ -2699,4 +2784,5 @@ App.UI.SlaveInteract.refreshAll = function(slave) {
 	App.UI.SlaveInteract.nursery(slave);
 	App.UI.SlaveInteract.custom(slave);
 	App.UI.SlaveInteract.hormones(slave);
+	App.UI.SlaveInteract.diet(slave);
 };
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index b54d573d440..df084f8e6ca 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -320,57 +320,10 @@
 			<span id="hormones"></span>
 			<script>App.UI.SlaveInteract.hormones(getSlave(V.activeSlave.ID))</script>
 
-			<br>Diet: <strong><span id="diet"><<= getSlave($AS).diet>></span></strong>.
-			<<link "Healthy">><<set getSlave($AS).diet = "healthy">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-			<<if (getSlave($AS).health.condition < 90 || getSlave($AS).chem >= 10) && ($dietCleanse == 1)>>
-				| <<link "Cleanse">><<set getSlave($AS).diet = "cleansing">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-			<<elseif ($dietCleanse == 1)>>
-				| //$He is already healthy//
-			<</if>>
-			<<if (getSlave($AS).balls > 0) && ($cumProDiet == 1)>>
-				| <<link "Cum production">><<set getSlave($AS).diet = "cum production">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-			<</if>>
-			<<if isFertile(getSlave($AS)) && getSlave($AS).preg == 0 && ($dietFertility == 1)>>
-				| <<link "Fertility">><<set getSlave($AS).diet = "fertility">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-			<</if>>
-			<<if (getSlave($AS).weight >= -95)>>
-				| <<link "Lose weight">><<set getSlave($AS).diet = "restricted">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-			<<else>>
-				| //$He is already underweight//
-			<</if>>
-			<<if getSlave($AS).weight <= 200>>
-				| <<link "Fatten">><<set getSlave($AS).diet = "fattening">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-			<<else>>
-				| //$He is already extremely overweight//
-			<</if>>
-			<<if $feeder == 1>>
-				<<if getSlave($AS).fuckdoll == 0 && getSlave($AS).fetish != "mindbroken">>
-					<<if (getSlave($AS).weight > 10 || getSlave($AS).weight < -10)>>
-							| <<link "Correct weight">><<set getSlave($AS).diet = "corrective">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-					<<else>>
-						//$He is already a healthy weight//
-					<</if>>
-				<</if>>
-				| <<link "Estrogen enriched">><<set getSlave($AS).diet = "XX">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-				| <<link "Testosterone enriched">><<set getSlave($AS).diet = "XY">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-				<<if $dietXXY == 1 && getSlave($AS).balls > 0 && (getSlave($AS).ovaries == 1 || getSlave($AS).mpreg == 1)>>
-					| <<link "Herm hormone blend">><<set getSlave($AS).diet = "XXY">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-				<</if>>
-			<</if>>
-			<<if (getSlave($AS).muscles <= 95) && !isAmputee(getSlave($AS))>>
-				| <<link "Build muscle">><<set getSlave($AS).diet = "muscle building">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-			<<elseif !isAmputee(getSlave($AS))>>
-				| //$He is maintaining $his enormous musculature//
-			<<else>>
-				| //$He has no limbs and thus can't effectively build muscle//
-			<</if>>
-			<<if (getSlave($AS).muscles > 5 || getSlave($AS).fuckdoll == 0) && canWalk(getSlave($AS))>>
-				| <<link "Slim down">><<set getSlave($AS).diet = "slimming">><<replace "#diet">><<= getSlave($AS).diet>><</replace>><</link>>
-			<<elseif !canWalk(getSlave($AS))>>
-				| //$He can't move and thus can't trim down//
-			<<elseif getSlave($AS).fuckdoll > 0>>
-				| //$He has no muscles left to lose//
-			<</if>>
+			<span id="diet"></span>
+			<script>App.UI.SlaveInteract.diet(getSlave(V.activeSlave.ID))</script>
+
+
 
 			<br>Diet Base: <strong><span id="dietBase"><<if getSlave($AS).dietCum == 2>>cum based<<elseif (getSlave($AS).dietCum == 1) && (getSlave($AS).dietMilk == 0)>>cum added<<elseif (getSlave($AS).dietCum == 1) && (getSlave($AS).dietMilk == 1)>>cum and milk added<<elseif (getSlave($AS).dietMilk == 1) && (getSlave($AS).dietCum == 0)>>milk added<<elseif (getSlave($AS).dietMilk == 2)>>milk based<<elseif (getSlave($AS).dietCum == 0) && (getSlave($AS).dietMilk == 0)>>normal<<else>>THERE HAS BEEN AN ERROR<</if>></span></strong>.
 			<<link "Normal">><<set getSlave($AS).dietCum = 0>><<set getSlave($AS).dietMilk = 0>><<replace "#dietBase">>normal<</replace>><</link>> |
-- 
GitLab