From 61252860b164c58d6264b812c8e9d8c8439dc500 Mon Sep 17 00:00:00 2001
From: DCoded <dicoded@email.com>
Date: Sun, 18 Apr 2021 00:32:50 -0400
Subject: [PATCH] Added effects()

---
 src/npc/interaction/fPCImpreg.js | 85 ++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)

diff --git a/src/npc/interaction/fPCImpreg.js b/src/npc/interaction/fPCImpreg.js
index b103973dd18..63fbc4fefff 100644
--- a/src/npc/interaction/fPCImpreg.js
+++ b/src/npc/interaction/fPCImpreg.js
@@ -8,6 +8,7 @@ App.Interact.fPCImpreg = function(slave) {
 	frag.append(
 		intro(slave),
 		consummation(slave),
+		effects(slave),
 	);
 
 	addPartner(slave, -1);
@@ -767,3 +768,87 @@ function consummation(slave) {
 
 	return frag;
 }
+
+function getEugenicsEffects() {
+	const frag = new DocumentFragment();
+	const reputationSpan = document.createElement('span');
+
+	reputationSpan.classList.add('reputation', 'dec');
+	reputationSpan.textContent = 'very displeased';
+
+	frag.append(`Rumors spread about you fucking your slaves pregnant; the Societal Elite are`, reputationSpan, ` by these rumors.`);
+
+	V.failedElite += 5;
+
+	return frag;
+}
+
+/** @param {App.Entity.SlaveState} slave */
+function getGenderRadicalistEffects(slave) {
+	const frag = new DocumentFragment();
+	const reputationSpan = document.createElement('span');
+
+	reputationSpan.classList.add('reputation', 'inc');
+	reputationSpan.textContent = 'approves';
+
+	frag.append(`Society `, reputationSpan, ` of your fucking your slaves' asses pregnant; this advances the ideal all a slave needs is ${getPronouns(slave).his} rear.`);
+
+	// FIXME: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
+	repX(V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel), 'futureSocieties', slave);
+
+	return frag;
+}
+
+/** @param {App.Entity.SlaveState} slave */
+function getGenderFundamentalistEffectsApproving(slave) {
+	const frag = new DocumentFragment();
+	const reputationSpan = document.createElement('span');
+
+	reputationSpan.classList.add('reputation', 'inc');
+	reputationSpan.textContent = 'approves';
+
+	frag.append(`Society `, reputationSpan, ` of your putting a new slave in ${getPronouns(slave).him}; this advances the idea that all slaves should bear their masters' babies.`);
+
+	return frag;
+}
+
+function getGenderFundamentalistEffectsDisapproving() {
+	const frag = new DocumentFragment();
+	const reputationSpan = document.createElement('span');
+
+	reputationSpan.classList.add('reputation', 'dec');
+	reputationSpan.textContent = 'is disgusted';
+
+	frag.append(`Society `, reputationSpan, ` by this degenerate form of reproduction.`);
+
+	return frag;
+}
+
+/** @param {App.Entity.SlaveState} slave */
+function getGenderFundamentalistEffects(slave) {
+	if (slave.mpreg) {
+		return getGenderFundamentalistEffectsDisapproving();
+	} else {
+		return getGenderFundamentalistEffectsApproving(slave);
+	}
+}
+
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @returns {DocumentFragment}
+ */
+function effects(slave) {
+	const frag = new DocumentFragment();
+
+	if (V.arcologies[0].FSRestart !== 'unset' && (!slave.breedingMark || !V.propOutcome) && V.eugenicsFullControl) {
+		frag.appendChild(getEugenicsEffects());
+	}
+
+	if (V.arcologies[0].FSGenderRadicalist !== 'unset' && slave.mpreg) {
+		frag.appendChild(getGenderRadicalistEffects(slave));
+	} else if (V.arcologies[0].FSGenderFundamentalist !== 'unset') {
+		frag.appendChild(getGenderFundamentalistEffects(slave));
+	}
+
+	return frag;
+}
-- 
GitLab