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