From 01efdfb6ed36f5e541cd3c903619211c4d3f3f89 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Tue, 21 Apr 2020 22:03:49 -0400
Subject: [PATCH] dietbase snacks and cleanup

---
 src/interaction/slaveInteract.js   | 129 +++++++++++++++++++++++++++--
 src/uncategorized/slaveInteract.tw |  20 +----
 2 files changed, 125 insertions(+), 24 deletions(-)

diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js
index bda9cb963bd..8a38bd01bc9 100644
--- a/src/interaction/slaveInteract.js
+++ b/src/interaction/slaveInteract.js
@@ -559,27 +559,27 @@ App.UI.SlaveInteract.hormones = function(slave) {
 	choice.style.fontWeight = "bold";
 	switch(slave.hormones) {
 		case 2: {
-			choice.textContent = `intensive female `;
+			choice.textContent = `intensive female. `;
 			break;
 		}
 		case 1: {
-			choice.textContent = `female `;
+			choice.textContent = `female. `;
 			break;
 		}
 		case 0: {
-			choice.textContent = `none `;
+			choice.textContent = `none. `;
 			break;
 		}
 		case -1: {
-			choice.textContent = `male `;
+			choice.textContent = `male. `;
 			break;
 		}
 		case -2: {
-			choice.textContent = `intensive male `;
+			choice.textContent = `intensive male. `;
 			break;
 		}
 		default: {
-			choice.textContent = `Not set `;
+			choice.textContent = `Not set. `;
 		}
 	}
 
@@ -595,7 +595,6 @@ App.UI.SlaveInteract.hormones = function(slave) {
 	return jQuery('#hormones').empty().append(el);
 };
 
-
 App.UI.SlaveInteract.diet = function(slave) {
 	const {
 		// eslint-disable-next-line no-unused-vars
@@ -614,7 +613,7 @@ App.UI.SlaveInteract.diet = function(slave) {
 	title.textContent = `Diet: `;
 	let choice = document.createElement('span');
 	choice.style.fontWeight = "bold";
-	choice.textContent = `${capFirstChar(slave.diet)} `;
+	choice.textContent = `${capFirstChar(slave.diet)}. `;
 
 	title.append(choice);
 	el.append(title);
@@ -726,6 +725,118 @@ App.UI.SlaveInteract.diet = function(slave) {
 	return jQuery('#diet').empty().append(el);
 };
 
+App.UI.SlaveInteract.dietBase = function(slave) {
+	let el = document.createElement('div');
+	const milk = [];
+	const cum = [];
+
+	// Milk
+	if (slave.dietCum <2) {
+		milk.push({text: `Milk added`, updateSlave: {dietMilk: 1}});
+		if (slave.dietCum < 2) {
+			milk.push({text: `Milk based`, updateSlave: {dietMilk: 2, dietCum: 0}});
+		}
+		if (slave.dietMilk) {
+			milk.push({text: `Remove milk`, updateSlave: {dietMilk: 0}});
+		}
+	} else {
+		milk.push({text: `Milk`, disabled: `Diet is based entirely on milk`});
+	}
+
+
+	// Cum
+	if (slave.dietMilk <2) {
+		cum.push({text: `Cum added`, updateSlave: {dietCum: 1}});
+		cum.push({text: `Cum based`, updateSlave: {dietCum: 2, dietMilk: 0}});
+		if (slave.dietCum) {
+			cum.push({text: `Remove cum`, updateSlave: {dietCum: 0}});
+		}
+	} else {
+		cum.push({text: `Cum`, disabled: `Diet is based entirely on milk`});
+	}
+
+	let title = document.createElement('div');
+	title.textContent = `Diet base: `;
+	let choice = document.createElement('span');
+	choice.style.fontWeight = "bold";
+	if (slave.dietCum === 2) {
+		choice.textContent = `cum based. `;
+	} else if (slave.dietCum === 1 && slave.dietMilk === 0) {
+		choice.textContent = `cum added. `;
+	} else if (slave.dietCum === 1 && slave.dietMilk === 1) {
+		choice.textContent = `cum and milk added. `;
+	} else if (slave.dietMilk === 1 && slave.dietCum === 0) {
+		choice.textContent = `milk added. `;
+	} else if (slave.dietMilk === 2) {
+		choice.textContent = `milk based. `;
+	} else if (slave.dietCum === 0 && slave.dietMilk === 0) {
+		choice.textContent = `normal. `;
+	} else {
+		choice.textContent = `THERE HAS BEEN AN ERROR.`;
+	}
+
+	title.append(choice);
+	el.append(title);
+
+	let links;
+	if (milk.length) {
+		links = document.createElement('div');
+		links.append(`Milk: `);
+		links.appendChild(App.UI.SlaveInteract.generateRows(milk, slave));
+		links.className = "choices";
+		el.append(links);
+	}
+	if (cum.length) {
+		links = document.createElement('div');
+		links.append(`Cum: `);
+		links.appendChild(App.UI.SlaveInteract.generateRows(cum, slave));
+		links.className = "choices";
+		el.append(links);
+	}
+
+	return jQuery('#dietBase').empty().append(el);
+};
+
+App.UI.SlaveInteract.snacks = 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');
+	let options = [];
+
+	if (V.arcologies[0].FSHedonisticDecadenceResearch === 1) {
+		let title = document.createElement('div');
+		title.textContent = `Solid Slave Food Access: `;
+		let choice = document.createElement('span');
+		choice.style.fontWeight = "bold";
+		if (slave.onDiet === 0) {
+			choice.textContent = `Free to stuff ${himself}.`;
+		} else {
+			choice.textContent = `On a strict diet.`;
+		}
+		title.append(choice);
+		el.append(title);
+
+
+		options.push({text: `No access`, updateSlave: {onDiet: 1}});
+		options.push({text: `Full access`, updateSlave: {onDiet: 0}});
+
+		let links = document.createElement('div');
+		links.appendChild(App.UI.SlaveInteract.generateRows(options, slave));
+		links.className = "choices";
+		el.append(links);
+	}
+
+	return jQuery('#snacks').empty().append(el);
+};
 
 App.UI.SlaveInteract.useSlaveDisplay = function(slave) {
 	// Goal: Be able to write the entire "use her" block with only dom fragments.
@@ -2828,4 +2939,6 @@ App.UI.SlaveInteract.refreshAll = function(slave) {
 	App.UI.SlaveInteract.custom(slave);
 	App.UI.SlaveInteract.hormones(slave);
 	App.UI.SlaveInteract.diet(slave);
+	App.UI.SlaveInteract.dietBase(slave);
+	App.UI.SlaveInteract.snacks(slave);
 };
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index df084f8e6ca..52f4425885c 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -315,29 +315,17 @@
 			<span id="bloating"></span>
 			<script>App.UI.SlaveInteract.bloating(getSlave(V.activeSlave.ID))</script>
 
-
-			
 			<span id="hormones"></span>
 			<script>App.UI.SlaveInteract.hormones(getSlave(V.activeSlave.ID))</script>
 
 			<span id="diet"></span>
 			<script>App.UI.SlaveInteract.diet(getSlave(V.activeSlave.ID))</script>
 
+			<span id="dietBase"></span>
+			<script>App.UI.SlaveInteract.dietBase(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>> |
-			<<link "Cum added">><<set getSlave($AS).dietCum = 1>><<set getSlave($AS).dietMilk = 0>><<replace "#dietBase">>cum added<</replace>><</link>> |
-			<<link "Milk added">><<set getSlave($AS).dietCum = 0>><<set getSlave($AS).dietMilk = 1>><<replace "#dietBase">>milk added<</replace>><</link>> |
-			<<link "Cum & milk added">><<set getSlave($AS).dietCum = 1>><<set getSlave($AS).dietMilk = 1>><<replace "#dietBase">>cum & milk added<</replace>><</link>> |
-			<<link "Cum based">><<set getSlave($AS).dietCum = 2>><<set getSlave($AS).dietMilk = 0>><<replace "#dietBase">>cum based<</replace>><</link>> |
-			<<link "Milk based">><<set getSlave($AS).dietCum = 0>><<set getSlave($AS).dietMilk = 2>><<replace "#dietBase">>milk based<</replace>><</link>>
-
-			<<if $arcologies[0].FSHedonisticDecadenceResearch == 1>>
-				<br>Solid Slave Food Access: <strong><span id="snacks"><<if getSlave($AS).onDiet == 0>>Free to stuff $himself.<<else>>On a strict diet.<</if>></span></strong>
-				<<link "No access">><<set getSlave($AS).onDiet = 1>><<replace "#snacks">>On a strict diet.<</replace>><</link>> |
-				<<link "Full access">><<set getSlave($AS).onDiet = 0>><<replace "#snacks">>Free to stuff $himself.<</replace>><</link>>
-			<</if>>
+			<span id="snacks"></span>
+			<script>App.UI.SlaveInteract.snacks(getSlave(V.activeSlave.ID))</script>
 		</p>
 	</div>
 </div>
-- 
GitLab