From 92364d16f880dd79cc93afe3be94f3113386b222 Mon Sep 17 00:00:00 2001
From: Svornost <11434-svornost@users.noreply.gitgud.io>
Date: Mon, 2 Oct 2023 13:34:34 -0400
Subject: [PATCH] Add a chance of inbreeding for slaves purchased from Incest
 Fetishist arcologies.

---
 src/npc/generate/generateMarketSlave.js | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/npc/generate/generateMarketSlave.js b/src/npc/generate/generateMarketSlave.js
index 3f12ebde2d8..6149f06a9e3 100644
--- a/src/npc/generate/generateMarketSlave.js
+++ b/src/npc/generate/generateMarketSlave.js
@@ -1097,7 +1097,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 				}
 			}
 			if (neighbor.FSIncestFetishist > 20) {
-				r += `Incest is acceptable, if not preferable to them. `;
+				r += `Incest is acceptable, if not preferable to them. Some of the younger slaves seem to be a bit inbred. `;
 				if (slave.sexualQuirk === "none" && slave.behavioralQuirk === "none") {
 					if (jsRandom(0, 1) === 0) {
 						slave.sexualQuirk = "perverted";
@@ -1109,6 +1109,19 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 				} else {
 					slave.behavioralQuirk = "sinful";
 				}
+				if (slave.actualAge <= 15 + (Math.ceil(V.week / 52))) { // younger slaves might be locally bred
+					slave.inbreedingCoeff = either(0, 0, 0, 0, 0.0625, 0.125, 0.125, 0.25, 0.25);
+					if (V.inbreeding === 1) {
+						if (jsRandom(1, 100) < slave.inbreedingCoeff * 200) {
+							slave.intelligence -= Math.abs(normalRandInt(5 * slave.inbreedingCoeff, 30 * slave.inbreedingCoeff, -100 * slave.inbreedingCoeff, 100 * slave.inbreedingCoeff));
+						}
+						if (slave.geneticQuirks.pFace === 0 && slave.geneticQuirks.uFace === 0) {
+							if (jsRandom(1, 100) < slave.inbreedingCoeff * 200) {
+								slave.face -= Math.abs(normalRandInt(5 * slave.inbreedingCoeff, 35 * slave.inbreedingCoeff, -100 * slave.inbreedingCoeff, 100 * slave.inbreedingCoeff));
+							}
+						}
+					}
+				}
 			}
 			if (FutureSocieties.isActive('FSDegradationist') && FutureSocieties.isActive('FSPaternalist', neighbor)) {
 				slave.devotion = jsRandom(-90, -60);
-- 
GitLab