From c7b15268346960be74b6eea57fbd9db3988f0245 Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Sun, 30 Aug 2020 19:35:12 -0400
Subject: [PATCH] Add dairy hormones controls

---
 Changelog.txt                                 |  6 +++
 js/003-data/gameVariableData.js               |  1 +
 src/002-config/fc-version.js                  |  4 +-
 .../backwardsCompatibility/datatypeCleanup.js |  1 +
 src/js/assignJS.js                            |  6 +++
 src/uncategorized/dairy.tw                    | 39 ++++++++++++++++++-
 src/uncategorized/dairyReport.tw              | 15 ++++---
 7 files changed, 64 insertions(+), 8 deletions(-)

diff --git a/Changelog.txt b/Changelog.txt
index ec93db6b02e..5e86ae1f3f3 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -2,6 +2,12 @@ Pregmod
 
 0.10.7.1-3.7.x
 
+	8/30/2020
+
+	1
+	-added hormone controls to the dairy
+	-various fixes and code cleaning
+
 	8/27/2020
 
 	0
diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index 40a220d5752..7ed1296abb7 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -596,6 +596,7 @@ App.Data.resetOnNGPlus = {
 	dairySlimMaintain: 0,
 	dairyHyperPregRemodel: 0,
 	dairyWeightSetting: 0,
+	dairyHormonesSetting: 2,
 	dairyImplantsSetting: 1,
 	dairyUpgradeMenials: 0,
 	createBioreactors: 0,
diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js
index 9f9136992a9..06195761b0b 100644
--- a/src/002-config/fc-version.js
+++ b/src/002-config/fc-version.js
@@ -1,6 +1,6 @@
 App.Version = {
 	base: "0.10.7.1", // The vanilla version the mod is based off of, this should never be changed.
-	pmod: "3.7.0",
+	pmod: "3.7.1",
 	commitHash: null,
-	release: 1090
+	release: 1091
 };
diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js
index a4fa8df25ae..8c304a9c01e 100644
--- a/src/data/backwardsCompatibility/datatypeCleanup.js
+++ b/src/data/backwardsCompatibility/datatypeCleanup.js
@@ -1631,6 +1631,7 @@ globalThis.FacilityDatatypeCleanup = (function() {
 		V.dairyHyperPregRemodel = Math.clamp(+V.dairyHyperPregRemodel, 0, 1) || 0;
 		V.dairyImplantsSetting = Math.clamp(+V.dairyImplantsSetting, 0, 3) || 0;
 		V.dairyWeightSetting = Math.clamp(+V.dairyWeightSetting, -1, 4) || 0;
+		V.dairyHormonesSetting = Math.clamp(+V.dairyHormonesSetting, -1, 2) || 0;
 		/* bioreactors */
 		V.bioreactorsAnnounced = Math.clamp(+V.bioreactorsAnnounced, 0, 1) || 0;
 		V.createBioreactors = Math.clamp(+V.createBioreactors, 0, 1) || 0;
diff --git a/src/js/assignJS.js b/src/js/assignJS.js
index 413c39f854f..6914b5dae71 100644
--- a/src/js/assignJS.js
+++ b/src/js/assignJS.js
@@ -564,6 +564,12 @@ globalThis.removeJob = function(slave, assignment, saveRecord = false) {
 				if (V.dairyRestraintsSetting > 1) {
 					slave.health.tired = 100;
 				}
+				if (V.dairyFeedersSetting > 0) {
+					slave.diet = "healthy";
+				}
+				if (V.dairyHormonesSetting > 0) {
+					slave.hormones = 0;
+				}
 				break;
 
 			case Job.FARMYARD.toLowerCase():
diff --git a/src/uncategorized/dairy.tw b/src/uncategorized/dairy.tw
index 91aa1c21620..f6926859cd7 100644
--- a/src/uncategorized/dairy.tw
+++ b/src/uncategorized/dairy.tw
@@ -684,6 +684,43 @@
 	<</if>>
 </div>
 
+<div>
+	<<set _note = "<span class='note'>NOTE: Favors milk production if available</span>">>
+	<<if $dairyHormonesSetting == 0>>
+		Cows will not be given hormones.
+		<div class="choices">
+			[[Apply Hormones|Dairy][$dairyHormonesSetting = 1]] |
+			[[Apply Intense Hormones|Dairy][$dairyHormonesSetting = 2]] |
+			[[Disable Hormone Control|Dairy][$dairyHormonesSetting = -1]]
+			<<print _note>>
+		</div>
+	<<elseif $dairyHormonesSetting == 1>>
+		Cows will be given hormones.
+		<div class="choices">
+			[[Increase Hormone Dosage|Dairy][$dairyHormonesSetting = 2]] |
+			[[Hormone Free|Dairy][$dairyHormonesSetting = 0]] |
+			[[Disable Hormone Control|Dairy][$dairyHormonesSetting = -1]]
+			<<print _note>>
+		</div>
+	<<elseif $dairyHormonesSetting == 2>>
+		Cows will undergo intense hormone treatment.
+		<div class="choices">
+			[[Decrease Hormone Dosage|Dairy][$dairyHormonesSetting = 1]] |
+			[[Hormone Free|Dairy][$dairyHormonesSetting = 0]] |
+			[[Disable Hormone Control|Dairy][$dairyHormonesSetting = -1]]
+			<<print _note>>
+		</div>
+	<<else>>
+		Hormone application is left to your discretion.
+		<div class="choices">
+			[[Apply Hormones|Dairy][$dairyHormonesSetting = 1]] |
+			[[Apply Intense Hormones|Dairy][$dairyHormonesSetting = 2]] |
+			[[Hormone Free|Dairy][$dairyHormonesSetting = 0]]
+			<<print _note>>
+		</div>
+	<</if>>
+</div>
+
 <div>
 	<<if $arcologies[0].FSPaternalist == "unset">>
 		<<if $dairyUpgradeMenials == 1>>
@@ -710,7 +747,7 @@
 
 <<if ($dairyPregSetting > 1) || ($dairyFeedersSetting > 1) || ($dairyStimulatorsSetting > 1)>>
 	<p>
-		@@.yellow;WARNING:@@ current milking machine settings may have irreversible effects on cows.
+		@@.yellow;WARNING:@@ current milking machine settings will have dramatic and possibly irreversible effects on cow bodies and minds.
 	</p>
 <</if>>
 
diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw
index 8a7bbfbae6c..79cd8a60eb7 100644
--- a/src/uncategorized/dairyReport.tw
+++ b/src/uncategorized/dairyReport.tw
@@ -485,12 +485,17 @@
 			<</if>>
 		<</if>>
 	<</if>>
+	<<if $dairyHormonesSetting >= 0>>
+		<<if _slave.lactation > 0>>
+			<<set _slave.hormones = $dairyHormonesSetting>>
+		<<elseif _slave.balls > 0>>
+			<<set _slave.hormones = -1 * $dairyHormonesSetting>>
+		<<else>>
+			<<set _slave.hormones = $dairyHormonesSetting>>
+		<</if>>
+	<</if>>
 	<<if ($dairyFeedersUpgrade == 1) && ($dairyFeedersSetting > 0)>>
-		<<if ($dairySlimMaintain == 0)>>
-			<<if (_slave.balls == 0)>>
-				<<set _slave.hormones = 2>>
-			<</if>>
-		<<elseif _slave.diet == "fattening">>
+		<<if $dairySlimMaintain == 0 && _slave.diet == "fattening">>
 			<<set _slave.weight += 2>>
 			<<if _slave.weightDirection == 1>>
 				<<set _slave.weight += 2>>
-- 
GitLab