From e66bea772fb2000c9d2cc1af31943de26bdeec96 Mon Sep 17 00:00:00 2001
From: _no0neman <no0nemane@protonmail.com>
Date: Sat, 17 Oct 2020 10:00:55 -0400
Subject: [PATCH] WIP: Gumjob Fetishism, separate policies

---
 js/003-data/policiesData.js                   |  6 ++---
 src/endWeek/saChoosesOwnJob.js                |  4 ++--
 src/endWeek/saReleaseRules.js                 |  2 +-
 src/endWeek/saServant.js                      |  4 ++--
 src/endWeek/saServeThePublic.js               | 12 +++++-----
 src/endWeek/saWhore.js                        | 12 +++++-----
 src/endWeek/saWorkAGloryHole.js               |  4 ++--
 src/endWeek/slaveAssignmentReport.js          |  6 ++---
 .../masterSuite/masterSuiteFramework.js       |  4 ++--
 .../penthouse/penthouseFramework.js           |  2 +-
 src/js/slaveCostJS.js                         | 22 +++++++++----------
 src/npc/children/longChildDescription.js      |  2 +-
 src/npc/descriptions/mouth.js                 |  2 +-
 13 files changed, 40 insertions(+), 42 deletions(-)

diff --git a/js/003-data/policiesData.js b/js/003-data/policiesData.js
index 1a522142cf0..accfec545c0 100644
--- a/js/003-data/policiesData.js
+++ b/js/003-data/policiesData.js
@@ -333,10 +333,9 @@ App.Data.Policies.Selection = {
 				title: "Gumjob Fetishism",
 				text: "you will use your personal influence to make toothless slaves and gummy blowjobs more desirable than not.",
 				activatedText: "you are using your personal influence to make toothless slaves and gummy blowjobs more desirable than not.",
-				get requirements() { return ((V.arcologies[0].FSDegradationist != "unset" || 
+				get requirements() { return (V.arcologies[0].FSDegradationist != "unset" || 
 											 V.arcologies[0].FSTransformationFetishist != "unset" || 
-											 V.arcologies[0].FSMaturityPreferentialist != "unset")
-											 && V.policies.gumjobFetishismSMR === 0) },
+											 V.arcologies[0].FSMaturityPreferentialist != "unset") },
 				note: `Will increase beauty of slaves without teeth, and decrease beauty and usage of slaves with teeth`
 			}
 		],
@@ -349,7 +348,6 @@ App.Data.Policies.Selection = {
 											 V.arcologies[0].FSTransformationFetishist >= 90 || 
 											 V.arcologies[0].FSMaturityPreferentialist >= 90) && 
 											 V.arcologies[0].FSPaternalist === "unset"); },
-				onImplementation: function() {V.policies.gumjobFetishism = 0},
 				note: `Will increase beauty of slaves without teeth, and decrease beauty and usage of slaves with teeth`
 			}
 		],
diff --git a/src/endWeek/saChoosesOwnJob.js b/src/endWeek/saChoosesOwnJob.js
index 61c2892a7f5..b30719ef237 100644
--- a/src/endWeek/saChoosesOwnJob.js
+++ b/src/endWeek/saChoosesOwnJob.js
@@ -184,7 +184,7 @@ App.SlaveAssignment.choosesOwnJob = (function() {
 					choice.push(assignJob(slave, "serve the public"));
 				}
 				slave.sexAmount = 10;
-			} else if (slave.energy > 60 && ((V.policies.gumjobFetishism === 0 && V.policies.gumjobFetishismSMR === 0) || ((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth == "removable"))) {
+			} else if (slave.energy > 60 && (V.policies.gumjobFetishism === 0 || (V.policies.gumjobFetishism === 1 && slave.teeth == "removable"))) {
 				choice.push(`and ${he} thinks of little but sex with you,`);
 				if (V.universalRulesAssignsSelfFacility === 1 && V.masterSuite > masterSL) {
 					choice.push(`so ${he} heads straight to ${V.masterSuiteName}.`);
@@ -344,7 +344,7 @@ App.SlaveAssignment.choosesOwnJob = (function() {
 					}
 					slave.sexAmount = 10;
 				}
-			} else if (slave.fetish === "pregnancy" && ((V.policies.gumjobFetishism === 0 && V.policies.gumjobFetishismSMR === 0) || ((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth == "removable"))) {
+			} else if (slave.fetish === "pregnancy" && (V.policies.gumjobFetishism === 0 || (V.policies.gumjobFetishism === 1 && slave.teeth == "removable"))) {
 				if (V.PC.dick > 0 && isFertile(slave)) {
 					if (V.universalRulesAssignsSelfFacility === 1 && V.masterSuite > masterSL) {
 						choice.push(`decides to serve you in ${V.masterSuiteName}, hoping that you'll get ${him} pregnant.`);
diff --git a/src/endWeek/saReleaseRules.js b/src/endWeek/saReleaseRules.js
index 06e392aae11..f414b59cd01 100644
--- a/src/endWeek/saReleaseRules.js
+++ b/src/endWeek/saReleaseRules.js
@@ -7,7 +7,7 @@ App.SlaveAssignment.nonAssignmentRelease = function(slave) {
 	const release = slave.rules.release;
 	const {he, his, him, himself} = getPronouns(slave);
 
-	if((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth != "removable") {
+	if(V.policies.gumjobFetishism === 1 && slave.teeth != "removable") {
 		release.master = 0;
 	}
 
diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js
index f53bb954e3d..d87eb7d3f26 100644
--- a/src/endWeek/saServant.js
+++ b/src/endWeek/saServant.js
@@ -28,7 +28,7 @@ App.SlaveAssignment.servant = (function() {
 
 		cash = 0;
 		oralUse = jsRandom(5, 10);
-		if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+		if (V.policies.gumjobFetishism === 1) {
 			if(slave.teeth == "fangs" || slave.teeth == "fang" || slave.teeth == "pointy") {
 				oralUse = 0;
 			}
@@ -138,7 +138,7 @@ App.SlaveAssignment.servant = (function() {
 		// 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?
 		oralUse = Math.ceil(oralUse * restEffects(slave, 11));
-		if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+		if (V.policies.gumjobFetishism === 1) {
 			if(slave.teeth == "fangs" || slave.teeth == "fang" || slave.teeth == "pointy") {
 				oralUse = 0;
 			}
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index be30b0a0eda..691dfe7d5e9 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -825,28 +825,28 @@ App.SlaveAssignment.serveThePublic = (function() {
 		}
 
 		if (slave.teeth === "removable") {
-			if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+			if (V.policies.gumjobFetishism === 1) {
 				r += ` The majority of the public is quite pleased with ${his} ability to give toothless sucks, and uses ${his} mouth liberally.`;
 			}
 			else {
 				r += ` The extra attention ${he} receives from ${his} ability to give toothless sucks is about balanced out by the citizens who are disgusted by it.`;
 			}
 		} else if (slave.teeth === "pointy") {
-			if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+			if (V.policies.gumjobFetishism === 1) {
 				r += ` The public completely detests ${his} horrific, sharp-toothed mouth and refuses to use it.`
 			}
 			else {
 				r += ` The extra attention ${he} receives due to ${his} sharp teeth is balanced by the citizens who are scared off by them.`;
 			}
 		} else if (slave.teeth === "fangs") {
-			if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+			if (V.policies.gumjobFetishism === 1) {
 				r += ` The public completely detests ${his} horrific, sharp-toothed mouth and refuses to use it.`
 			}
 			else {
 				r += ` The extra attention ${he} receives due to ${his} fangs is balanced by the citizens who are scared off by them.`;
 			}
 		} else {
-			if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+			if (V.policies.gumjobFetishism === 1) {
 				r += ` Most of the public is quite dissapointed in ${his} tooth-filled mouth.`
 			}
 		}
@@ -1283,11 +1283,11 @@ App.SlaveAssignment.serveThePublic = (function() {
 	 */
 	function sexCounts(slave) {
 		/* SEX ACT COUNTS AND SEXUAL SATISFACTION */
-		if((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth == "removable") {
+		if(V.policies.gumjobFetishism === 1 && slave.teeth == "removable") {
 			V.oralUseWeight += 2;
 		}
 		oralUse = (V.oralUseWeight + (slave.skill.oral / 30) + (slave.lips / 20));
-		if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+		if (V.policies.gumjobFetishism === 1) {
 			if(slave.teeth == "fangs" || slave.teeth == "fang" || slave.teeth == "pointy") {
 				oralUse = 0;
 			}
diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js
index 62b6ca50d33..11cd9ecf16d 100644
--- a/src/endWeek/saWhore.js
+++ b/src/endWeek/saWhore.js
@@ -898,28 +898,28 @@ App.SlaveAssignment.whore = (function() {
 		}
 
 		if (slave.teeth === "removable") {
-			if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+			if (V.policies.gumjobFetishism === 1) {
 				r += ` The majority of the customers are quite pleased with ${his} ability to give toothless sucks, and purchase time in ${his} mouth liberally.`;
 			}
 			else {
 				r += ` The extra attention ${he} receives from ${his} ability to give toothless sucks is about balanced out by the customers who are disgusted by it.`;
 			}
 		} else if (slave.teeth === "pointy") {
-			if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+			if (V.policies.gumjobFetishism === 1) {
 				r += ` Customers completely detest ${his} horrific, sharp-toothed mouth and refuse to rent it.`
 			}
 			else {
 				r += ` The extra attention ${he} receives due to ${his} sharp teeth is balanced by the customers who are scared off by them.`;
 			}
 		} else if (slave.teeth === "fangs") {
-			if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+			if (V.policies.gumjobFetishism === 1) {
 				r += ` Customers completely detest ${his} horrific, sharp-toothed mouth and refuse to rent it.`
 			}
 			else {
 				r += ` The extra attention ${he} receives due to ${his} fangs is balanced by the customers who are scared off by them.`;
 			}
 		} else {
-			if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+			if (V.policies.gumjobFetishism === 1) {
 				r += ` Most customers are quite dissapointed in ${his} tooth-filled mouth.`
 			}
 		}
@@ -1356,11 +1356,11 @@ App.SlaveAssignment.whore = (function() {
 	function sexCounts(slave) {
 		/* SEX ACT COUNTS AND SEXUAL SATISFACTION */
 
-		if((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth == "removable") {
+		if(V.policies.gumjobFetishism === 1 && slave.teeth == "removable") {
 			V.oralUseWeight += 2;
 		}
 		oralUse = (V.oralUseWeight + (slave.skill.oral / 30) + (slave.lips / 20));
-		if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+		if (V.policies.gumjobFetishism === 1) {
 			if(slave.teeth == "fangs" || slave.teeth == "fang" || slave.teeth == "pointy") {
 				oralUse = 0;
 			}
diff --git a/src/endWeek/saWorkAGloryHole.js b/src/endWeek/saWorkAGloryHole.js
index 6bceb1b8a32..dd2d096de76 100644
--- a/src/endWeek/saWorkAGloryHole.js
+++ b/src/endWeek/saWorkAGloryHole.js
@@ -323,11 +323,11 @@ App.SlaveAssignment.workAGloryHole = (function() {
 	 */
 	function sexCounts(slave) {
 		/* SEX ACT COUNTS AND SEXUAL SATISFACTION */
-		if((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth == "removable") {
+		if(V.policies.gumjobFetishism === 1 && slave.teeth == "removable") {
 			V.oralUseWeight += 2;
 		}
 		oralUse = (V.oralUseWeight + (slave.lips / 20));
-		if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+		if (V.policies.gumjobFetishism === 1) {
 			if(slave.teeth == "fangs" || slave.teeth == "fang" || slave.teeth == "pointy") {
 				oralUse = 0;
 			}
diff --git a/src/endWeek/slaveAssignmentReport.js b/src/endWeek/slaveAssignmentReport.js
index eddebde77d0..e2ad2fe9a6c 100644
--- a/src/endWeek/slaveAssignmentReport.js
+++ b/src/endWeek/slaveAssignmentReport.js
@@ -766,7 +766,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 			}
 			case Job.CONCUBINE:
 				{
-					if((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth != "removable") {
+					if(V.policies.gumjobFetishism === 1 && slave.teeth != "removable") {
 						_printSlaveUnassignedNote(slave, "cannot be your concubine without being able to give gumjobs");
 						removeJob(slave, Job.CONCUBINE);
 					}
@@ -774,14 +774,14 @@ App.EndWeek.slaveAssignmentReport = function() {
 				break;
 			case Job.FUCKTOY:
 				{
-					if((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth != "removable") {
+					if(V.policies.gumjobFetishism === 1 && slave.teeth != "removable") {
 						_printSlaveUnassignedNote(slave, "cannot be your fucktoy without being able to give gumjobs");
 						removeJob(slave, Job.FUCKTOY);
 					}
 				}
 			case Job.MASTERSUITE:
 				{
-					if((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth != "removable") {
+					if(V.policies.gumjobFetishism === 1 && slave.teeth != "removable") {
 						_printSlaveUnassignedNote(slave, "cannot be your fucktoy without being able to give gumjobs");
 						removeJob(slave, Job.MASTERSUITE);
 					}
diff --git a/src/facilities/masterSuite/masterSuiteFramework.js b/src/facilities/masterSuite/masterSuiteFramework.js
index 54ad2d1352d..a49e41e419c 100644
--- a/src/facilities/masterSuite/masterSuiteFramework.js
+++ b/src/facilities/masterSuite/masterSuiteFramework.js
@@ -39,7 +39,7 @@ App.Entity.Facilities.MasterSuiteFuckToyJob = class extends App.Entity.Facilitie
 		if (!App.Entity.Facilities.Job._isBrokenEnough(slave, 20, -51, -21, -50)) {
 			r.push(`${slave.slaveName} is not sufficiently broken for ${this.facility.name}.`);
 		}
-		else if ((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth != "removable") {
+		else if (V.policies.gumjobFetishism === 1 && slave.teeth != "removable") {
 			r.push(`${slave.slaveName} does not have removable teeth and can't give gumjobs.`);
 		}
 
@@ -58,7 +58,7 @@ App.Entity.Facilities.ConcubineJob = class extends App.Entity.Facilities.Managin
 		if (isAmputee(slave)) {
 			r.push(`${slave.slaveName} can't serve as your Concubine without limbs.`);
 		}
-		if ((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth != "removable") {
+		if (V.policies.gumjobFetishism === 1 && slave.teeth != "removable") {
 			r.push(`${slave.slaveName} does not have removable teeth and can't give gumjobs.`);
 		}
 		return r;
diff --git a/src/facilities/penthouse/penthouseFramework.js b/src/facilities/penthouse/penthouseFramework.js
index 91e47ac46a7..1410f568fbf 100644
--- a/src/facilities/penthouse/penthouseFramework.js
+++ b/src/facilities/penthouse/penthouseFramework.js
@@ -158,7 +158,7 @@ App.Entity.Facilities.PenthouseJobs = {
 	Fucktoy: class extends App.Entity.Facilities.Job {
 		checkRequirements(slave) {
 			let r = super.checkRequirements(slave);
-			if ((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth != "removable") {
+			if (V.policies.gumjobFetishism === 1 && slave.teeth != "removable") {
 				r.push(`${slave.slaveName} does not have removable teeth and can't give gumjobs.`);
 			}
 			return r;
diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js
index 013379b1f6c..3d67e85b517 100644
--- a/src/js/slaveCostJS.js
+++ b/src/js/slaveCostJS.js
@@ -261,7 +261,7 @@ globalThis.BeautyArray = (function() {
 	function calcTeethBeauty(slave) {
 		switch (slave.teeth) {
 			case "crooked":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", -(50));
 				}
 				else {
@@ -269,12 +269,12 @@ globalThis.BeautyArray = (function() {
 				}
 				break;
 			case "gapped":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", -(50));
 				}
 				break;
 			case "fang":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", -(100));
 				}
 				else {
@@ -286,12 +286,12 @@ globalThis.BeautyArray = (function() {
 				}
 				break;
 			case "straightening braces":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1){
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", -(100));
 				}
 				break;
 			case "cosmetic braces":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", -(100));
 				}
 				else if (slave.visualAge > 14 && slave.visualAge < 18) {
@@ -299,7 +299,7 @@ globalThis.BeautyArray = (function() {
 				}
 				break;
 			case "removable":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", (15));
 				}
 				else {
@@ -307,22 +307,22 @@ globalThis.BeautyArray = (function() {
 				}
 				break;
 			case "pointy":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", -(100));
 				}
 				break;
 			case "fangs":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", -(100));
 				}
 				break;
 			case "baby":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", -(50));
 				}
 				break;
 			case "mixed":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", -(50));
 				}
 				else {
@@ -330,7 +330,7 @@ globalThis.BeautyArray = (function() {
 				}
 				break;
 			case "normal":
-				if(V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) {
+				if (V.policies.gumjobFetishism === 1) {
 					adjustBeauty("Teeth: Gumjob Fetishism", -(50));
 				}
 				break;
diff --git a/src/npc/children/longChildDescription.js b/src/npc/children/longChildDescription.js
index 1cf071d575f..ceb2fa26654 100644
--- a/src/npc/children/longChildDescription.js
+++ b/src/npc/children/longChildDescription.js
@@ -3944,7 +3944,7 @@ App.Facilities.Nursery.LongChildDescription = function(child, {market = 0, event
 				r += `${He} is in the process of replacing ${his} baby teeth. `;
 			}
 		}
-		if((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && child.teeth !== "removable") {
+		if(V.policies.gumjobFetishism === 1 && child.teeth !== "removable") {
 			r += `${His} teeth have not yet been removed and replaced with high-quality dentures.`;
 		}
 
diff --git a/src/npc/descriptions/mouth.js b/src/npc/descriptions/mouth.js
index 9962e492ba6..f10234b8e9f 100644
--- a/src/npc/descriptions/mouth.js
+++ b/src/npc/descriptions/mouth.js
@@ -130,7 +130,7 @@ App.Desc.mouth = function(slave) {
 				r.push(`${He} is in the process of replacing ${his} baby teeth.`);
 			}
 		}
-		if((V.policies.gumjobFetishism === 1 || V.policies.gumjobFetishismSMR === 1) && slave.teeth !== "removable") {
+		if(V.policies.gumjobFetishism === 1 && slave.teeth !== "removable") {
 				r.push(`${His} teeth have not yet been removed and replaced with high-quality dentures.`);
 		}
 	}
-- 
GitLab