diff --git a/src/facilities/farmyard/farmyardShows.js b/src/facilities/farmyard/farmyardShows.js
index 9780ef20c371efdee9b577f6e83bfda76fdbeff9..d3ca664af81edaddb98e2b0670fd7c7f246bb5ba 100644
--- a/src/facilities/farmyard/farmyardShows.js
+++ b/src/facilities/farmyard/farmyardShows.js
@@ -91,7 +91,11 @@ App.Facilities.Farmyard.farmShowsIncome = function(slave) {
 		if (arcology.FSDegradationist !== "unset") {
 			if (V.seeBestiality) {
 				if (V.farmyardBreeding) {
-					cash *= 1.2;
+					if (V.farmyardRestraints) {
+						cash *= 1.4;
+					} else {
+						cash *= 1.2;
+					}
 				} else {
 					cash *= 1.1;
 				}
@@ -226,17 +230,9 @@ App.Facilities.Farmyard.farmShowsIncome = function(slave) {
 			cash *= 0.7;
 		}
 
-		if (slave.devotion > 50) { 									// slave is devoted or more
-			cash *= 1.1;
-		} else if (slave.devotion < -50) { 							// slave is reluctant or less
-			cash *= 0.8;
-		}
+		setSlaveDevotion(cash);
 
-		if (slave.trust > 50) { 									// slave is trusting or more
-			cash *= 1.1;
-		} else if (slave.trust < -50) { 							// slave is less than frightened
-			cash *= 0.8;											// TODO: should trust be a factor?
-		}
+		setSlaveTrust(cash);
 
 		if (slave.weight > 30) { 									// slave is curvy or more
 			cash *= 0.8;											// TODO: possibly tie in Hedonism?
@@ -345,4 +341,134 @@ App.Facilities.Farmyard.farmShowsIncome = function(slave) {
 
 		return cash;
 	}
+
+	function setSlaveDevotion(amount) {
+		let
+			sexualQuirks = ["perverted", "unflinching"],
+			behavorialQuirks = ["sinful"],
+			fetishes = ["humiliation", "masochist"];
+
+		const slaveApproves = () => sexualQuirks.includes(slave.sexualQuirk) || behavorialQuirks.includes(slave.behavioralQuirk) || fetishes.includes(slave.fetish);
+
+		if (slave.devotion > 50) {
+			amount *= 1.3;
+
+			if (V.seeBestiality) {
+				if (slaveApproves) {
+					slave.devotion += 2;
+				} else {
+					slave.devotion--;
+				}
+			}
+
+			if (V.farmyardBreeding) {
+				if (slaveApproves) {
+					slave.devotion += 2;
+				} else {
+					slave.devotion--;
+				}
+			}
+
+			if (V.farmyardRestraints) {
+				if (slaveApproves) {
+					slave.devotion += 3;
+				} else {
+					slave.devotion -= 2;
+				}
+			}
+		} else if (slave.devotion < -50) {
+			amount *= 0.8;
+
+			if (V.seeBestiality) {
+				if (slaveApproves) {
+					slave.devotion++;
+				} else {
+					slave.devotion -= 2;
+				}
+			}
+
+			if (V.farmyardBreeding) {
+				if (slaveApproves) {
+					slave.devotion++;
+				} else {
+					slave.devotion -= 2;
+				}
+			}
+
+			if (V.farmyardRestraints) {
+				if (slaveApproves) {
+					slave.devotion += 2;
+				} else {
+					slave.devotion -= 3;
+				}
+			}
+		}
+
+		return amount;
+	}
+
+	function setSlaveTrust(amount) {
+		let
+			sexualQuirks = ["perverted", "unflinching"],
+			behavorialQuirks = ["sinful"],
+			fetishes = ["humiliation", "masochist"];
+
+		const slaveApproves = () => sexualQuirks.includes(slave.sexualQuirk) || behavorialQuirks.includes(slave.behavioralQuirk) || fetishes.includes(slave.fetish);
+
+		if (slave.trust > 50) {
+			amount *= 1.2;
+
+			if (V.seeBestiality) {
+				if (slaveApproves) {
+					slave.trust += 2;
+				} else {
+					slave.trust--;
+				}
+			}
+
+			if (V.farmyardBreeding) {
+				if (slaveApproves) {
+					slave.trust += 2;
+				} else {
+					slave.trust--;
+				}
+			}
+
+			if (V.farmyardRestraints) {
+				if (slaveApproves) {
+					slave.trust += 3;
+				} else {
+					slave.trust -= 2;
+				}
+			}
+		} else if (slave.trust < -50) {
+			amount *= 0.9;
+
+			if (V.seeBestiality) {
+				if (slaveApproves) {
+					slave.trust++;
+				} else {
+					slave.trust -= 2;
+				}
+			}
+
+			if (V.farmyardBreeding) {
+				if (slaveApproves) {
+					slave.trust++;
+				} else {
+					slave.trust -= 2;
+				}
+			}
+
+			if (V.farmyardRestraints) {
+				if (slaveApproves) {
+					slave.trust += 2;
+				} else {
+					slave.trust -= 3;
+				}
+			}
+		}
+
+		return amount;
+	}
 };