From 859374ba5b47d9cfc9042dc4407c1a3e9ba4edd2 Mon Sep 17 00:00:00 2001
From: humungusluver <82497-humungusluver@users.noreply.gitgud.io>
Date: Mon, 10 Feb 2025 17:29:18 -0500
Subject: [PATCH] make servant quarter upgrade do something and remove old dead
 code

---
 src/endWeek/saServant.js | 38 +++++++++++++++++---------------------
 src/js/economyJS.js      |  3 +++
 2 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js
index 94e01b49786..882943ef206 100644
--- a/src/endWeek/saServant.js
+++ b/src/endWeek/saServant.js
@@ -108,32 +108,11 @@ App.SlaveAssignment.servant = function saServant(slave, stewardessBonus = 0) {
 		}
 	}
 
-	/**
-	 * @param {FC.SlaveState} slave
-	 */
-	function doOralUse(slave) {
-		// TODO: this flat unchecked oral sex is a bit problematic
-		// who is she serving and why aren't they benefiting?
-		// is the current number of servants correct to accomplish this task?
-		// why can't the player prevent this on-assignment sex while still getting the other benefits of having a servant?
-		let oralUse = jsRandom(5, 10);
-		if (V.policies.gumjobFetishism === 1) {
-			if (slave.teeth !== "removable") {
-				oralUse = Math.trunc(oralUse / 2);
-			} else {
-				oralUse = Math.trunc(oralUse * 1.5);
-			}
-		}
-		oralUse = Math.ceil(oralUse * restEffects(slave, 11));
-		actX(slave, "oral", oralUse);
-	}
 
 	/**
 	 * @param {FC.SlaveState} slave
 	 */
 	function jobEffects(slave) {
-		doOralUse(slave);
-
 		if (slave.relationship === -2) {
 			r.push(`${He} does ${his} best to perfect your domesticity due to ${his} emotional bond to you.`);
 		} else if (slave.relationship === -3 && slave.devotion > 50) {
@@ -180,6 +159,23 @@ App.SlaveAssignment.servant = function saServant(slave, stewardessBonus = 0) {
 				slave.boobsMilk = 0;
 			}
 		}
+
+		if (App.Entity.facilities.servantsQuarters.upgrade('monitoring')) {
+			r.push(`The enhanced monitoring systems ensures ${he} is always busy and working, improving ${his} effectiveness.`);
+			if (slave.fetish !== Fetish.MINDBROKEN && slave.devotion < 20 && jsRandom(0, 3) === 1) {
+				if (isHorny(slave) && jsRandom(0, 1) === 1) {
+					r.push(`Unable to control ${his} libido, ${slave.slaveName} is caught desperately dry humping a bed ${he} should be making;`);
+				} else {
+					r.push(`A camera catches ${him} slacking off and skipping out on assigned work;`);
+				}
+				r.push(`${S.Stewardess ? S.Stewardess.slaveName : V.assistant.name} is immediately informed to punish ${him} appropriately, <span class="devotion inc">increasing ${his} obedience.</span>`);
+				slave.devotion += S.Attendant ? 3 : 2;
+				if (slave.trust > -30) {
+					r.push(`Realizing ${he} is always being watched <span class="trust dec">increases ${his} fear of you.</span>`);
+					slave.trust -= 2;
+				}
+			}
+		}
 	}
 
 	/**
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index c6948b0cb40..0268717235e 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -1140,6 +1140,9 @@ globalThis.houseServantEffectiveness = function(slave) {
 	if (App.Data.Careers.General.servant.includes(slave.career) || slave.skill.servant >= Constant.MASTERED_XP) {
 		effectiveness *= 1.1;
 	}
+	if (App.Entity.facilities.servantsQuarters.upgrade('monitoring') === 1) {
+		effectiveness *= 1.1;
+	}
 	effectiveness = Math.trunc(effectiveness * App.SlaveAssignment.PartTime.efficiencyModifier(slave) * restEffects(slave) / 10);
 	return effectiveness;
 };
-- 
GitLab