From 43f1ba05b56250cbe446fdba049c27e0926ef55d Mon Sep 17 00:00:00 2001 From: Svornost <11434-svornost@users.noreply.gitgud.io> Date: Sun, 13 Sep 2020 02:14:42 -0700 Subject: [PATCH] Societal effects to JS; introduce compressed reporting mode. --- js/003-data/gameVariableData.js | 3 +- src/endWeek/socialEffects.js | 996 +++++++++++++++++++++++++ src/gui/options/options.tw | 3 + src/js/futureSocietyJS.js | 11 +- src/uncategorized/saLongTermEffects.tw | 821 +------------------- 5 files changed, 1009 insertions(+), 825 deletions(-) create mode 100644 src/endWeek/socialEffects.js diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js index d28a7b555d2..c1f73ebc733 100644 --- a/js/003-data/gameVariableData.js +++ b/js/003-data/gameVariableData.js @@ -56,7 +56,8 @@ App.Data.defaultGameStateVariables = { rulesets: 2, skills: 2, } - } + }, + compressSocialEffects: 0 }, /** @type {marketGlobal|null} */ market: null, diff --git a/src/endWeek/socialEffects.js b/src/endWeek/socialEffects.js new file mode 100644 index 00000000000..c35a0a0baf5 --- /dev/null +++ b/src/endWeek/socialEffects.js @@ -0,0 +1,996 @@ +/** Apply and return description of social effects + * @param {App.Entity.SlaveState} slave + * @param {number} para - paraphilia satisfaction + * @returns {DocumentFragment} + */ +App.SlaveAssignment.saSocialEffects = function(slave, para) { + const {His, his, him, he, girl, wife} = getPronouns(slave); + + /** Build a social effect object + * @param {string} FS + * @param {number} magnitude positive or negative value (a small integer, or a fraction between -1 and 1) + * @param {string} shortDesc for compact/list mode (text string) + * @param {string} longDesc for expanded mode (HTML string) + * @param {boolean} [creditFacility=false] true if the effect is only due to the facility she's assigned to + */ + function SocialEffect(FS, magnitude, shortDesc, longDesc, creditFacility=false) { + this.FS = FS; + this.magnitude = magnitude; + this.shortDesc = shortDesc; + this.longDesc = longDesc; + this.creditFacility = creditFacility; + } + + /** @returns {SocialEffect[]} */ + function makeSocialEffects() { + let t = []; + + const modScore = SlaveStatsChecker.modScore(slave); + + if (V.arcologies[0].FSSupremacist !== "unset") { + if (slave.race === V.arcologies[0].FSSupremacistRace) { + if ([Job.ARCADE, Job.PUBLIC, Job.CLUB, Job.WHORE, Job.GLORYHOLE, Job.BROTHEL].includes(slave.assignment)) { + t.push(new SocialEffect("Supremacist", -1, "Degrading job for race", + `Society <span class="red">${V.arcologies[0].FSSupremacist >= V.FSLockinLevel*0.6 ? "strongly " : ''}disapproves</span> of your keeping a slave of the ${V.arcologies[0].FSSupremacistRace} race in a degrading, public role; this also holds back acceptance of ${V.arcologies[0].FSSupremacistRace} superiority.`, true)); + } else if (slave.assignment === Job.HEADGIRL) { + t.push(new SocialEffect("Supremacist", 2, "Headgirl race", + `Society <span class="green">strongly approves</span> of your keeping a slave of the ${V.arcologies[0].FSSupremacistRace} race in a position of leadership as your Head Girl, advancing the notion that those of the ${V.arcologies[0].FSSupremacistRace} race should be in positions of authority over others.`)); + } else if (slave.assignment === Job.RECRUITER) { + t.push(new SocialEffect("Supremacist", 2, "Recruiter race", + `Society <span class="green">strongly approves</span> of your keeping a slave of the ${V.arcologies[0].FSSupremacistRace} race in a position of leadership as your recruiter, advancing the notion that it is only natural that those of the ${V.arcologies[0].FSSupremacistRace} race should lead the charge in enslaving others.`)); + } else if (slave.assignment === Job.CONCUBINE) { + t.push(new SocialEffect("Supremacist", 2, "Concubine race", + `Society <span class="green">strongly approves</span> of your keeping a slave of the ${V.arcologies[0].FSSupremacistRace} race in a position of importance as your concubine, advancing the notion that the most favored of your bedslaves should naturally be of the ${V.arcologies[0].FSSupremacistRace} race.`)); + } else { + t.push(new SocialEffect("Supremacist", 0, "Normal job for race", + `Society does not disapprove of your keeping a slave of the ${V.arcologies[0].FSSupremacistRace} race, since ${he} is not in a publicly degrading role.`)); + } + if (slave.pregKnown === 1) { + if (slave.pregSource > 0) { + const dad = findFather(slave.pregSource); + if (dad) { + if ((slave.race !== dad.race) && (V.arcologies[0].FSSupremacistRace === "mixed race")) { + t.push(new SocialEffect("Supremacist", 2, "Mixed race breeding", + `Society <span class="lightgreen">approves</span> of your using slave breeders like ${slave.slaveName} to propagate the ${V.arcologies[0].FSSupremacistRace} civilization.`)); + } else if (slave.race !== dad.race) { + t.push(new SocialEffect("Supremacist", -2, "Miscegenation", + `Society <span class="red">strongly disapproves</span> of your allowing a pure ${V.arcologies[0].FSSupremacistRace} slave to be miscegenated by ${dad.slaveName}.`)); + } else { + t.push(new SocialEffect("Supremacist", 2, "Pure race breeding", + `Society <span class="green">strongly approves</span> of your using slave breeders like ${slave.slaveName} to propagate the ${V.arcologies[0].FSSupremacistRace} civilization.`)); + } + } + } + } + if (slave.fuckdoll > 0) { + t.push(new SocialEffect("Supremacist", -2, "Superior race fuckdoll", + `Society <span class="red">strongly disapproves</span> of your owning a ${V.arcologies[0].FSSupremacistRace} Fuckdoll.`)); + } + } else { + t.push(new SocialEffect("Supremacist", 1, "Inferior race slave", + `Society <span class="green">approves</span> of your keeping a slave of an inferior race; this also advances ${V.arcologies[0].FSSupremacistRace} superiority.`)); + if (slave.fuckdoll > 0) { + t.push(new SocialEffect("Supremacist", 1, "Inferior race fuckdoll", + `Society <span class="green">approves</span> of your keeping a Fuckdoll of an inferior race.`)); + } + } + } + + if (V.arcologies[0].FSSubjugationist !== "unset") { + if (slave.race === V.arcologies[0].FSSubjugationistRace) { + t.push(new SocialEffect("Subjugationist", 1, "Inferior race slave", + `Society <span class="green">approves</span> of your keeping a slave of the subject ${V.arcologies[0].FSSubjugationistRace} race; this also advances ${V.arcologies[0].FSSubjugationistRace} inferiority.`)); + if (slave.ovaries === 0) { + if (slave.balls === 0 || slave.vasectomy === 1) { + let r = []; + r.push(`Society <span class="green">approves</span> of ${slave.slaveName}'s `); + if (slave.vasectomy === 1 && slave.balls > 0) { + r.push(`vasectomy,`); + } else if (slave.dick > 0) { + r.push(`gelding,`); + } else { + r.push(`sterilization,`); + } + r.push(`which ensures that ${he} will not propagate the ${V.arcologies[0].FSSubjugationistRace} race.`); + t.push(new SocialEffect("Subjugationist", 1, "Sterilized inferior slave", r.join(' '))); + } + } + if (slave.fuckdoll > 0) { + t.push(new SocialEffect("Subjugationist", 1, "Inferior race fuckdoll", + `Society <span class="green">approves</span> of your keeping a Fuckdoll of the ${V.arcologies[0].FSSubjugationistRace} race.`)); + } + } else { + if (slave.pregKnown === 1 && slave.pregSource > 0) { + const dad = findFather(slave.pregSource); + if (dad && dad.race === V.arcologies[0].FSSubjugationistRace) { + t.push(new SocialEffect("Subjugationist", -2, "Miscegenation", + `Society <span class="red">strongly disapproves</span> of your allowing ${slave.slaveName} to be miscegenated by a ${V.arcologies[0].FSSubjugationistRace} subhuman like ${dad.slaveName}.`)); + } + } + } + } + + if (V.arcologies[0].FSYouthPreferentialist !== "unset") { + if ((slave.geneMods.NCS > 0) && (slave.visualAge <= 18)) { + t.push(new SocialEffect("YouthPreferentialist", 2, "NCS Youthening", + `Society <span class="green">strongly approves</span> of you keeping ${slave.slaveName} forever young and youthening; this furthers the fashion for young slaves.`)); + } else if (slave.visualAge < 30) { + const youthRepChange = ((30-slave.visualAge)/5); + t.push(new SocialEffect("YouthPreferentialist", youthRepChange, "Young-looking slave", + `Society <span class="green">approves</span> of ${slave.slaveName}'s youthful body; ${he} furthers the fashion for young slaves.`)); + } + } else if (V.arcologies[0].FSMaturityPreferentialist !== "unset") { + if (slave.visualAge >= 30) { + const matureRepChange = ((slave.visualAge-25)/5); + t.push(new SocialEffect("MaturityPreferentialist", matureRepChange, "Mature-looking slave", + `Society <span class="green">approves</span> of ${slave.slaveName}'s mature body; ${he} furthers the fashion for older ladies.`)); + } + } + + if (V.arcologies[0].FSPetiteAdmiration !== "unset") { + if (heightPass(slave)) { + t.push(new SocialEffect("PetiteAdmiration", 1, "Short slave", + `Society <span class="green">approves</span> of keeping a slave as short as ${slave.slaveName} is; ${he} furthers the fashion for shorter slaves.`)); + } else if (slave.height >= 170) { + t.push(new SocialEffect("PetiteAdmiration", -1, "Tall slave", + `Society <span class="red">frowns</span> at keeping a slave as tall as ${slave.slaveName}; ${he} hinders the fashion for shorter slaves.`)); + } + } else if (V.arcologies[0].FSStatuesqueGlorification !== "unset") { + if (heightPass(slave)) { + t.push(new SocialEffect("StatuesqueGlorification", 1, "Tall slave", + `Society <span class="green">approves</span> of keeping a slave as tall as ${slave.slaveName} is; ${he} furthers the fashion for taller slaves.`)); + } else { + t.push(new SocialEffect("StatuesqueGlorification", -1, "Short slave", + `Society <span class="red">frowns</span> at keeping someone as embarrassingly short as ${slave.slaveName}; ${he} hinders the fashion for taller slaves.`)); + } + } + + if (V.arcologies[0].FSGenderRadicalist !== "unset") { + if ((slave.balls > 0) && (slave.pubertyXY === 0) && (slave.physicalAge >= V.potencyAge)) { + t.push(new SocialEffect("GenderRadicalist", 2, "Avoiding male puberty", + `Society <span class="green">approves</span> of you keeping ${slave.slaveName} from going through puberty; this advances public interest in ${girl}s with soft little dicks.`)); + } else if ((slave.balls > 0) && (slave.dick > 0) && (slave.hormoneBalance >= 100)) { + t.push(new SocialEffect("GenderRadicalist", 1, "Feminization", + `Society <span class="green">approves</span> of your heavy hormonal feminization of ${slave.slaveName}; this advances public interest in ${girl}s with soft little dicks.`)); + } else if ((slave.dick > 0) && (slave.balls === 0)) { + t.push(new SocialEffect("GenderRadicalist", 1, "Gelded slave", + `Society <span class="green">approves</span> of your keeping a gelded slave; this advances public interest in ${girl}s with soft dickclits.`)); + } else if ((slave.dick > 0) && (slave.anus > 0) && (slave.devotion > 20) && (slave.trust >= -20)) { + t.push(new SocialEffect("GenderRadicalist", 1, "Contented dickgirl bottom", + `Society <span class="green">approves</span> of your keeping a contented dickgirl bottom; this advances public interest in ${girl}s who get hard when assfucked.`)); + } + } else if (V.arcologies[0].FSGenderFundamentalist !== "unset") { + if (V.arcologies[0].FSRestart === "unset") { + if (slave.bellyPreg >= 1500) { + t.push(new SocialEffect("GenderFundamentalist", 1, "Pregnant", + `Society <span class="green">${V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel*0.5 ? "strongly " : ""}approves</span> of your keeping a pregnant slave; this also supports the idea that slave women should bear babies.`)); + } else if ((slave.preg === 0) && isFertile(slave)) { + t.push(new SocialEffect("GenderFundamentalist", 1, "Fertile", + `Society <span class="green">${V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel*0.5 ? "strongly " : ""}approves</span> of your keeping a slave fertile; this also supports the idea that slave women should bear babies.`)); + } + } else { + if (slave.hips > slave.shoulders) { + t.push(new SocialEffect("GenderFundamentalist", 1, "Feminine figure", + `Society <span class="green">approves</span> of keeping a slave with a feminine figure.`)); + } + } + if ((slave.intelligenceImplant > 15 || slave.intelligenceImplant < 0) && V.arcologies[0].FSGenderFundamentalistLawBimbo === 1) { + t.push(new SocialEffect("GenderFundamentalist", -1, "Educated woman", + `Society <span class="red">disapproves</span> of encouraging a woman's education.`)); + } + if ((slave.devotion <= 95) && canPenetrate(slave)) { + t.push(new SocialEffect("GenderFundamentalist", -1, "Can penetrate, not worshipful", + `Society <span class="red">disapproves</span> of ${slave.slaveName}'s stiff, unrestrained dick, since ${he} isn't even worshipful of you.`)); + } + } + + function repopRacialPregnancy() { + if (V.arcologies[0].FSSubjugationist !== "unset" && (slave.race === V.arcologies[0].FSSubjugationistRace)) { + t.push(new SocialEffect("RepopulationFocus", 0, "Undesirable race (Subjugationist)", + `They just wish it wasn't ${V.arcologies[0].FSSubjugationistRace}, of course.`)); + } else if (V.arcologies[0].FSSupremacist !== "unset" && (slave.race === V.arcologies[0].FSSupremacistRace)) { + t.push(new SocialEffect("RepopulationFocus", 0, "Desirable race (Supremacist)", + `The fact that ${he} is ${V.arcologies[0].FSSupremacistRace} only makes it better.`)); + } + } + + if (V.arcologies[0].FSRepopulationFocus !== "unset") { + if (slave.preg > slave.pregData.normalBirth/1.33) { + if (slave.pregType >= 20) { + t.push(new SocialEffect("RepopulationFocus", 5, "Broodmother", + `Society is <span class="green">very pleased</span> at ${slave.slaveName}'s dedication to pregnancy.`)); + } else if (slave.pregType >= 10) { + t.push(new SocialEffect("RepopulationFocus", 3, "Large multiple pregnancy", + `Society is <span class="green">pleased</span> by ${slave.slaveName}'s abnormally large pregnancy.`)); + } else { + t.push(new SocialEffect("RepopulationFocus", 2, "Advanced pregnancy", + `Society is <span class="green">pleased</span> by ${slave.slaveName}'s advanced pregnancy.`)); + } + repopRacialPregnancy(); + } else if (slave.weight > 130) { + let r = []; + r.push(`${slave.slaveName} is so fat, society just assumes there is a baby somewhere in there, though they wish it was more obvious.`); + if (slave.pregWeek < 0) { + r.push(`But fortunately for ${him}, word of ${his} recent birth has gotten around <span class="green">reassuring the masses</span> that ${he} can still bear children.`); + t.push(new SocialEffect("RepopulationFocus", 2, "Fat recent mother", r.join(" "))); + } else if (slave.collar === "preg biometrics") { + if (slave.preg > 0) { + r.push(`<span class="green">Their wish is granted</span> by ${slave.slaveName}'s collar revealing ${his} womb's secret${slave.pregType > 1 ? 's' : ''} even when ${his} body is trying its best to keep ${slave.pregType > 1 ? "them" : "it"} hidden.`); + t.push(new SocialEffect("RepopulationFocus", 2, "Fat pregnancy", r.join(" "))); + repopRacialPregnancy(); + } else if (slave.preg <= 0) { + r.push(`<span class="red">The illusion is shattered</span> by ${slave.slaveName}'s collar revealing ${his} vacant womb.`); + t.push(new SocialEffect("RepopulationFocus", -2, "Fat but not pregnant", r.join(" "))); + } + } + } else if (slave.bellyPreg >= 1500) { + t.push(new SocialEffect("RepopulationFocus", 1, "Obviously pregnant", + `Society is <span class="green">pleased</span> by ${slave.slaveName}'s pregnancy.`)); + repopRacialPregnancy(); + } else if (V.arcologies[0].FSSubjugationist !== "unset" && (slave.race === V.arcologies[0].FSSubjugationistRace) && slave.bellyImplant >= 1500) { + t.push(new SocialEffect("", 0.1, "Belly implant for inferior race (Repopulation Focus)", + `Society <span class="green">is satisfied</span> with ${slave.slaveName}'s implant filled belly since ${his} kind really shouldn't be breeding.`)); + } else if (slave.bellyImplant >= 1500 && ((slave.ovaries === 0 && slave.mpreg === 0) || slave.preg < -1)) { + t.push(new SocialEffect("", 0.1, "Belly implant for infertile slave (Repopulation Focus)", + `Society <span class="green">accepts</span> ${slave.slaveName}'s implant filled belly due to ${his} infertility.`)); + } else if (slave.collar === "preg biometrics" && slave.preg > 0) { + t.push(new SocialEffect("RepopulationFocus", 1, "Pregnancy biometrics", + `Society is <span class="green">pleased</span> by ${slave.slaveName}'s collar revealing ${his} womb's secret${slave.pregType > 1 ? 's' : ''} even when ${his} body is trying its best to keep ${slave.pregType > 1 ? "them" : "it"} hidden.`)); + repopRacialPregnancy(); + } else if (slave.pregWeek < 0) { + t.push(new SocialEffect("RepopulationFocus", 2, "Recently gave birth", + `Society is <span class="green">pleased</span> by ${slave.slaveName}'s recent birth.`)); + } else if (setup.fakeBellies.includes(slave.bellyAccessory)) { + t.push(new SocialEffect("", 0.01, "Fake belly (Repopulation Focus)", + `Society is <span class="green">placated</span> by ${slave.slaveName}'s fake belly.`)); + } else if (V.arcologies[0].FSSubjugationist !== "unset" && (slave.race === V.arcologies[0].FSSubjugationistRace)) { + t.push(new SocialEffect("RepopulationFocus", 0, "Not pregnant but inferior race (Subjugationist)", + `Society is perfectly fine with ${slave.slaveName} not reproducing. ${His} belly is still unattractively small, however.`)); + } else if ((slave.ovaries === 0 && slave.mpreg === 0) || (slave.preg < -1) || (slave.pubertyXX === 0)) { + t.push(new SocialEffect("RepopulationFocus", -1, "Unable to become pregnant", + `Society is <span class="red">mildly disappointed</span> that ${slave.slaveName} is unable to become pregnant.`)); + } else if (slave.preg === -1) { + t.push(new SocialEffect("RepopulationFocus", -2, "On contraceptives", + `Society is <span class="red">disapproving</span> of ${slave.slaveName}'s contraceptive regimen.`)); + } else { + t.push(new SocialEffect("RepopulationFocus", -2, "Not visibly pregnant", + `Society is <span class="red">disapproving</span> of ${slave.slaveName}'s lack of a baby bump.`)); + } + if (slave.abortionTat > 0) { + t.push(new SocialEffect("RepopulationFocus", -1, "Abortion tattoos", + `Society <span class="red">is disgusted</span> by the tally of aborted children adorning ${his} skin.`)); + } + if (slave.birthsTat > 0) { + t.push(new SocialEffect("RepopulationFocus", 1, "Birth tattoos", + `Society <span class="green">is pleased</span> by the tally of successful births adorning ${his} skin.`)); + } + } else if (V.arcologies[0].FSRepopulationFocusPregPolicy === 1) { + if (slave.preg > 30) { + t.push(new SocialEffect("", 1, "Advanced pregnancy (Repopulation Policy)", + `Society <span class="green">loves</span> ${slave.slaveName}'s advanced pregnancy. It's very trendy.`)); + } else if (slave.bellyPreg >= 1500) { + t.push(new SocialEffect("", 0.5, "Big pregnant belly (Repopulation Policy)", + `Society <span class="green">enjoys</span> ${slave.slaveName}'s pregnancy. Being heavy with child is in right now.`)); + } + } else if (V.arcologies[0].FSRestart !== "unset") { + if (slave.chastityVagina) { + t.push(new SocialEffect("Eugenics", 1, "Vaginal chastity", + `Society is <span class="green">mildly pleased</span> at you keeping ${his} vagina in check.`)); + } + if (slave.chastityPenis) { + t.push(new SocialEffect("Eugenics", 1, "Penile chastity", + `Society is <span class="green">mildly pleased</span> at you keeping ${his} dick in check.`)); + } + if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.pregKnown === 1 && (slave.pregSource === -1 || slave.pregSource === -6)) { + let r = []; + r.push(`The Societal Elite <span class="green">are pleased</span> `); + if (slave.pregSource === -1) { + r.push(`your`); + } else if (slave.pregSource === -6) { + r.push(`an Elite`); + } + r.push(`child${slave.pregType > 1 ? 'ren are' : ' is'} growing within ${him}. The mark covering ${his} lower belly, coupled with ${his} gravidity and blessing, <span class="green">enamors</span> your populace.`); + V.failedElite -= (5 + slave.pregType); + t.push(new SocialEffect("Eugenics", 3, "Breeder arrying elite baby", r.join(' '))); + if (slave.abortionTat > 0) { + r = []; + r.push(`The `); + if (slave.abortionTat > 1) { + r.push(`tally of aborted children`); + } else { + r.push(`tattoo marking an aborted child`); + } + r.push(`adorning ${his} middle <span class="red">is worrying,</span> however.`); + t.push(new SocialEffect("Eugenics", 3, "Elite breeder abortion tattoo", r.join(' '))); + } + } + } else { + if (slave.preg > slave.pregData.normalBirth/1.33) { + if (slave.pregType >= 10) { + t.push(new SocialEffect("Eugenics", -10, "Broodmother carrying unapproved babies", + `Society is <span class="red">furious</span> at ${slave.slaveName}'s infested womb.`)); + } else if (slave.pregType >= 4) { + t.push(new SocialEffect("Eugenics", -5, "Unapproved advanced multiple pregnancy", + `Society is <span class="red">disgusted</span> by ${slave.slaveName}'s abnormally large pregnancy.`)); + } else { + t.push(new SocialEffect("Eugenics", -3, "Unapproved advanced pregnancy", + `Society is <span class="red">greatly displeased</span> by ${slave.slaveName}'s advanced pregnancy.`)); + } + } else if (slave.bellyPreg >= 1500) { + t.push(new SocialEffect("Eugenics", -2, "Visible unapproved pregnancy", + `Society is <span class="red">very displeased</span> by ${slave.slaveName}'s pregnancy.`)); + } else if ((slave.preg < -1) && (slave.vagina > -1)) { + t.push(new SocialEffect("Eugenics", 2, "Not fertile", + `Society is <span class="green">pleased</span> that ${slave.slaveName} is unable to become pregnant.`)); + } + if (slave.abortionTat > 0) { + t.push(new SocialEffect("Eugenics", 1, "Abortion tatoos", + `The tally of aborted pregnancies adorning ${his} middle shows <span class="green">just how responsible</span> of an owner ${he} has.`)); + } + if (slave.pregKnown === 1 && V.eugenicsFullControl !== 1) { + t.push(new SocialEffect("Eugenics", 0, "Unapproved pregnancy (ELITE WARNING)", + `The Societal Elite <span class="red">judge you</span> for keeping pregnant slaves. It falls to the slaveowner to deal with subhuman pregnancies and you are failing in your duties as a member of the Elite.`)); + V.failedElite += (5 + slave.pregType); + } + } + if (slave.balls > 0 && slave.pubertyXY === 1 && slave.vasectomy === 0) { + t.push(new SocialEffect("Eugenics", -slave.balls, "Working testicles", + `Society <span class="red">disapproves</span> of ${his} working testicles.`)); + FutureSocieties.ChangePorn("Eugenics", -slave.balls); + } else if (slave.dick > 0 && slave.balls > 0 && slave.vasectomy === 1) { + t.push(new SocialEffect("Eugenics", 1, "Vasectomy", + `Society <span class="green">approves</span> of ${his} vasectomy.`)); + } else if (slave.dick > 0 && slave.balls > 0 && slave.ballType === "sterile") { + t.push(new SocialEffect("Eugenics", 1, "Sterile testicles", + `Society <span class="green">approves</span> of ${his} useless testicles.`)); + } else if (slave.dick > 0 && slave.balls === 0) { + t.push(new SocialEffect("Eugenics", 2, "Castrated", + `Society <span class="green">approves</span> of ${his} lack of testicles.`)); + } + } + if (V.arcologies[0].FSRepopulationFocusMilfPolicy === 1 && slave.counter.birthsTotal > 0) { + t.push(new SocialEffect("", 1, "MILF Policy", + `Society <span class="green">loves</span> MILFs and as a mother, ${slave.slaveName} fits right in.`)); + } + + if (V.arcologies[0].FSPaternalist !== "unset") { + if ((slave.geneMods.NCS > 0) && (slave.visualAge <= V.potencyAge) && (slave.physicalAge >= V.potencyAge)) { + t.push(new SocialEffect("Paternalist", 1, "NCS Youthening", + `Society <span class="green">approves</span> of you keeping ${slave.slaveName} perpetually young and innocent looking so you can keep taking care of ${him}; this advances paternalistic ideals.`)); + } else if ((slave.intelligenceImplant >= 15) && (slave.fetish !== "mindbroken")) { + t.push(new SocialEffect("Paternalist", 1, "Educated", + `Society <span class="green">approves</span> of ${slave.slaveName} being properly educated; this advances ideas about slave improvement.`)); + } + if (slave.fetish !== "mindbroken") { + if (slave.intelligenceImplant <= -15) { + t.push(new SocialEffect("Paternalist", -2, "Miseducated", + `Society <span class="red">is appalled</span> by ${slave.slaveName}'s twisted education; it goes against paternalistic values.`)); + } else if ((V.arcologies[0].FSGenderFundamentalistLawBimbo !== 1 && V.arcologies[0].FSIntellectualDependency === "unset") && (slave.intelligenceImplant < 15)) { + if ((slave.assignment !== "learn in the schoolroom") && (slave.assignment !== "take classes")) { + t.push(new SocialEffect("Paternalist", -1, "Uneducated", + `Society <span class="red">disapproves</span> of ${slave.slaveName} being uneducated; this holds back ideas about slave improvement.`)); + } + } + } + if (slave.health.condition > 80) { + t.push(new SocialEffect("Paternalist", 1, "Healthy", + `Society <span class="green">approves</span> of ${his} shining health; this advances belief in a slaveowner's duty.`)); + } + if (slave.devotion+slave.trust > 180) { + if (slave.relationship === -3) { + t.push(new SocialEffect("Paternalist", 5, `Happy slave ${wife}`, + `Society <span class="green">approves very strongly</span> of ${his} happiness as your ${wife}; this advances paternalistic ideals.`)); + } else if ((slave.relationship === -2)) { + t.push(new SocialEffect("Paternalist", 2, `Happy and emotionally bonded`, + `Society <span class="green">strongly approves</span> of ${his} emotional bond to you; this advances paternalistic ideals.`)); + } else { + t.push(new SocialEffect("Paternalist", 1, `Devoted and trusting`, + `Society <span class="green">approves</span> of ${his} attachment to you; this advances paternalistic ideals.`)); + } + } else { + if (slave.devotion > 95) { + t.push(new SocialEffect("Paternalist", 1, `Worshipful`, + `Society <span class="green">approves</span> of ${his} attachment to you; this advances paternalistic ideals.`)); + } + if (slave.trust > 95) { + t.push(new SocialEffect("Paternalist", 1, `Completely trusting`, + `Society <span class="green">approves</span> of ${his} trust in you; this advances paternalistic ideals.`)); + } + } + if (slave.choosesOwnAssignment === 1) { + t.push(new SocialEffect("Paternalist", 1, `Choosing own assignment`, + `Society <span class="green">approves</span> of ${slave.slaveName} being allowed to choose ${his} own job, advancing ideals about slave self-actualization.`)); + } + if (slave.relationship === -3) { + if (slave.fetish === "mindbroken") { + t.push(new SocialEffect("Paternalist", 1, `Mindbroken, married`, + `Society is mixed over your marriage to the mindbroken ${girl}; on one hand ${he} had no consent, but on the other, you <span class="green">surely must love ${him}</span> to marry ${him}.`)); + } else if ((slave.devotion <= 20)) { + t.push(new SocialEffect("Paternalist", -3, `Forced marriage`, + `Society is <span class="red">thoroughly disgusted</span> that you took ${his} hand in marriage by force.`)); + } + } + if (modScore.total > 15 || (modScore.piercing > 8 && modScore.tat > 5)) { + t.push(new SocialEffect("Paternalist", -1, `Body mods`, + `Society <span class="red">disapproves</span> of ${his} degrading body modifications, which dulls the public interest in letting slaves choose their own appearance.`)); + } + if (slave.fuckdoll > 0) { + t.push(new SocialEffect("Paternalist", -2, `Fuckdoll`, + `Society <span class="red">strongly disapproves</span> of your owning a Fuckdoll.`)); + } else if (!canWalk(slave) && canMove(slave) && slave.rules.mobility !== "permissive") { + t.push(new SocialEffect("Paternalist", -1, `Lack of mobility`, + `Society <span class="red">disapproves</span> that you are forcing ${him} to crawl instead of aiding ${his} mobility.`)); + } + } else if (V.arcologies[0].FSDegradationist !== "unset") { + if (slave.fetish === "mindbroken") { + t.push(new SocialEffect("Degradationist", -1, `Mindbroken`, + `Society <span class="green">approves</span> of ${his} broken spirit; ${he} serves as an example of a soulless fuckpuppet.`)); + } else { + if (slave.trust <= 4) { + t.push(new SocialEffect("Degradationist", 1, `Fearful`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s fear of you.`)); + } else { + if (slave.assignment === Job.HEADGIRL) { + t.push(new SocialEffect("Degradationist", 0, `Trusting headgirl`, + `Society accepts ${slave.slaveName} trusting you, since ${he} is your Head Girl and keeps the other slaves down.`)); + } else if (slave.assignment === Job.RECRUITER) { + t.push(new SocialEffect("Degradationist", 0, `Trusting recruited`, + `Society accepts ${slave.slaveName} trusting you, since ${he} is your Recruiter and entraps new slaves.`)); + } else if (slave.devotion > 95) { + t.push(new SocialEffect("Degradationist", 0, `Trusting worshipful`, + `Society reluctantly accepts of ${slave.slaveName} trusting you, since ${he} is worshipful of you.`)); + } else { + t.push(new SocialEffect("Degradationist", -1, `Trusting without cause`, + `Society <span class="red">disapproves</span> of ${slave.slaveName} being trusting of you; ${he} is not being properly degraded for ${his} role.`)); + } + } + if (slave.intelligenceImplant <= -15) { + t.push(new SocialEffect("Degradationist", 1, `Miseducated`, + `Society <span class="reputation.inc">is amused</span> by ${slave.slaveName}'s education and how much it hinders critical thought.`)); + } + } + if ((slave.assignment === Job.GLORYHOLE) || (slave.assignment === Job.ARCADE)) { + t.push(new SocialEffect("Degradationist", 1, `Restrained for sex`, + `Society <span class="green">approves</span> of how ${he} is restrained for involuntary use, seeing this as the future of sexual relations.`)); + } + if (modScore.total > 15 || (modScore.piercing > 8 && modScore.tat > 5)) { + t.push(new SocialEffect("Degradationist", 1, `Heavily modified`, + `Society <span class="green">approves</span> of ${his} many body modifications, which advances the public taste for such degradation of slave bodies.`)); + } + if (slave.abortionTat > 0 && V.arcologies[0].FSRepopulationFocus === "unset") { + t.push(new SocialEffect("Degradationist", V.arcologies[0].FSRestart !== "unset" ? 2 : 1, `Abortion tattoos`, + `Society <span class="green">${V.arcologies[0].FSRestart !== "unset" ? "greatly " : ""}approves</span> of ${his} tally of aborted children.`)); + } + if (slave.voice !== 0) { + if (slave.lips > 95) { + t.push(new SocialEffect("Degradationist", 1, `Facepussy`, + `Society <span class="green">approves</span> of the way ${his} mouth, with its useless ability to speak, has been replaced with an appealing hole.`)); + } + } + if (slave.choosesOwnAssignment === 1) { + t.push(new SocialEffect("Degradationist", -1, `Choosing own assignment`, + `Society <span class="red">disapproves</span> of ${slave.slaveName} being allowed to choose ${his} own job; this holds back ideas about slave degradation.`)); + } + if (slave.fuckdoll > 0) { + t.push(new SocialEffect("Degradationist", 1, `Fuckdoll`, + `Society <span class="green">approves</span> of your owning a Fuckdoll.`)); + } else if (!canWalk(slave) && canMove(slave) && slave.rules.mobility === "restrictive") { + t.push(new SocialEffect("Degradationist", 1, `Lack of mobility`, + `Society <span class="green">approves</span> that ${he} is forced to crawl like the dog ${he} is.`)); + } + } + + if (!(jQuery.isEmptyObject(slave.scar))) { + let hasScar = 0; + for (const scarPlace in slave.scar) { + for (const scarType in slave.scar[scarPlace]) { + if (scarType === "exotic") { + continue; // exotic scars don't count + } else { + if (V.arcologies[0].FSDegradationist !== "unset") { + t.push(new SocialEffect("Degradationist", 1, `Scarred`, + `Society <span class="green">mildly approves</span> of your slave's scarring; this encourages the further abuse of slaves.`)); + } else if (V.arcologies[0].FSPaternalist !== "unset") { + t.push(new SocialEffect("Paternalist", -1, `Scarred`, + `Society <span class="red">mildly disapproves</span> of your scarred slaves, viewing them as a sign of mistreatment.`)); + } + hasScar = 1; + break; + } + } + if (hasScar) { + break; + } + } + } + + if (V.arcologies[0].FSIntellectualDependency !== "unset") { + if (V.arcologies[0].FSIntellectualDependencyLawBeauty === 1) { + if (bimboScore(slave) === 6) { + t.push(new SocialEffect("IntellectualDependency", 1, `Perfect bimbo`, + `Society <span class="green">is delighted</span> by ${slave.slaveName}'s perfect bimbo appearance.`)); + } + } + if (slave.intelligence+slave.intelligenceImplant < -10) { + t.push(new SocialEffect("IntellectualDependency", 1, `Dimwitted`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s dimwitted mind; this supports the idea that slaves should be entirely dependent on their owner.`)); + } else if ([Job.HEADGIRL, Job.ATTENDANT, Job.FARMER, Job.MADAM, Job.MATRON, Job.NURSE, Job.TEACHER, Job.STEWARD, Job.BODYGUARD].includes(slave.assignment)) { + t.push(new SocialEffect("IntellectualDependency", 0, `Intelligence required by job`, + `Society understands the value of intelligence in ${his} appointed position and is willing to overlook it.`)); + } else if ((slave.intelligence+slave.intelligenceImplant > 10)) { + t.push(new SocialEffect("IntellectualDependency", -1, `Too smart`, + `Society <span class="red">disapproves</span> of ${slave.slaveName}'s sharp mind; this holds back acceptance of the idea that slaves should be dumb and dependent.`)); + } + if (slave.energy > 95) { + t.push(new SocialEffect("IntellectualDependency", 1, `Nymphomania`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s bottomless lust, showing the public one more way a slave may be reliant on ${his} owner.`)); + } else if ((slave.energy <= 60)) { + t.push(new SocialEffect("IntellectualDependency", -1, `Low libido`, + `Society <span class="red">disapproves</span> of ${slave.slaveName}'s restrained libido; to the public, this gives ${him} too much freedom to focus on things other than sex.`)); + } + } else if (V.arcologies[0].FSSlaveProfessionalism !== "unset") { + if (slave.intelligence+slave.intelligenceImplant > 95) { + t.push(new SocialEffect("SlaveProfessionalism", 1, `Brilliant`, + `Society <span class="green">strongly approves</span> of ${slave.slaveName}'s brilliance; ${his} sharp wit is the foundation of slave perfectionism.`)); + } else if (slave.intelligenceImplant >= 30) { + t.push(new SocialEffect("SlaveProfessionalism", 1, `Highly educated`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s advanced education; this advances ideas about crafting the perfect slave.`)); + } else if (slave.intelligenceImplant <= -15) { + t.push(new SocialEffect("SlaveProfessionalism", -3, `Miseducated`, + `Society <span class="red">is appalled</span> by ${slave.slaveName}'s twisted education; why someone would do this is beyond them.`)); + } else if (slave.intelligence < -10 && slave.intelligenceImplant < 15) { + t.push(new SocialEffect("SlaveProfessionalism", -2, `Slow and uneducated`, + `Society <span class="red">frowns</span> upon keeping a slave as slow as ${slave.slaveName}; the lack of an attempt to correct this sets a bad example for other owners.`)); + } + if (slave.accent > 1 && canTalk(slave) && (slave.rules.speech !== "restrictive" || (slave.rules.speech === "restrictive" && slave.devotion < 20 && slave.trust >= -20))) { + t.push(new SocialEffect("SlaveProfessionalism", -2, `Can't speak ${V.language} or be silent`, + `Society <span class="red">dislikes</span> ${slave.slaveName}'s inability to properly speak ${V.language} or hold ${his} tongue; allowing such a flaw hinders the notion of professional slavery.`)); + } + if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) { + t.push(new SocialEffect("SlaveProfessionalism", 1, `Highly skilled`, + `Society <span class="green">appreciates</span> a slave with skills of ${slave.slaveName}'s caliber.`)); + } + if (slave.energy <= 40 && slave.devotion > 50) { + t.push(new SocialEffect("SlaveProfessionalism", 1, `Clearminded (low libido or devoted)`, + `Society <span class="green">approves</span> of a ${girl} with a clear mind like ${slave.slaveName}; ${he} can pour all ${his} efforts into ${his} lover's pleasure without being lost in ${his} own.`)); + } + } + + if (V.arcologies[0].FSBodyPurist !== "unset") { + if ((slave.boobsImplant === 0) && (slave.buttImplant === 0) && (slave.lipsImplant === 0) && (slave.bellyImplant === -1)) { + t.push(new SocialEffect("BodyPurist", 1, `No implants`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s natural body; this supports the fashion for surgically untouched slaves.`)); + } else { + t.push(new SocialEffect("BodyPurist", -1, `Implants`, + `Society <span class="red">disapproves</span> of ${slave.slaveName}'s implants; this holds back acceptance of the idea that slaves should be all-natural.`)); + } + if (slave.corsetPiercing === 0 && modScore.piercing < 3 && modScore.tat < 2) { + t.push(new SocialEffect("BodyPurist", 1, `Minimal piercings/tats`, + `Society <span class="green">approves</span> of ${his} unmarked, unblemished skin, advancing the fashion for unspoiled slaves.`)); + } + if ((slave.earShape !== "normal" && slave.earShape !== "damaged") || slave.earT !== "none") { + t.push(new SocialEffect("BodyPurist", -1, `Inhuman ears`, + `Society finds ${his} inhuman ears <span class="red">appalling.</span>`)); + } + if (slave.horn !== "none" || slave.tail !== "none") { + t.push(new SocialEffect("BodyPurist", -1, `Inhuman tail or horns`, + `Society <span class="red">is disgusted</span> by ${his} inhuman attributes.`)); + } + if (slave.faceImplant <= 5 && slave.race === slave.origRace) { + t.push(new SocialEffect("BodyPurist", 1, `Unaltered`, + `Society <span class="green">approves</span> of ${his} natural, untouched appearance, advancing the fashion for unaltered slaves.`)); + } else { + t.push(new SocialEffect("BodyPurist", -2, `Surgically altered`, + `Society <span class="red">disapproves</span> of ${slave.slaveName}'s surgical beautification; this holds back acceptance of the idea that a natural slave is a beautiful slave.`)); + } + if (slave.fuckdoll === 0) { + if (slave.vagina === 0 && slave.anus === 0 && slave.counter.vaginal === 0 && slave.counter.anal === 0) { + t.push(new SocialEffect("BodyPurist", 3, `Total virgin`, + `Society <span class="green">strongly approves</span> of ${his} intact holes, idolizing ${his} pristine body.`)); + } else if (slave.vagina === 0 && slave.counter.vaginal === 0) { + t.push(new SocialEffect("BodyPurist", 1, `Vaginal virgin`, + `Society <span class="green">approves</span> of ${his} intact hymen, advancing ideals of pure, fresh slaves.`)); + } else if (slave.anus === 0 && slave.counter.anal === 0) { + t.push(new SocialEffect("BodyPurist", 1, `Anal virgin`, + `Society <span class="green">approves</span> of ${his} intact anus, advancing ideals of pure, fresh slaves.`)); + } + } + } else if (V.arcologies[0].FSTransformationFetishist !== "unset") { + let transformed = 0; + if ((slave.boobsImplant > 0) && (slave.buttImplant > 0) && (slave.lipsImplant > 0)) { + t.push(new SocialEffect("TransformationFetishist", 1, `Implants`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s thoroughly modified body; this supports the fashion for surgically upgraded slaves.`)); + transformed++; + } + if ((slave.lipsImplant/slave.lips >= .50) || (slave.buttImplant/slave.butt >= .50 && slave.butt >= 6) || (slave.buttImplant/slave.butt >= .25 && slave.butt >= 3) || (slave.boobsImplant/slave.boobs >= .75 && slave.boobs >= 10000) || (slave.boobsImplant/slave.boobs >= .50 && slave.boobs >= 2000) || (slave.boobsImplant/slave.boobs >= .25 && slave.boobs >= 1000) || (slave.boobsImplant/slave.boobs >= .10 && slave.boobs >= 400)) { + t.push(new SocialEffect("TransformationFetishist", 1, `Big implants`, + `Society <span class="green">approves</span> of ${his} obvious implants.`)); + transformed++; + } + if (slave.bellyImplant >= 1500) { + t.push(new SocialEffect("TransformationFetishist", 1, `Big belly implant`, + `Society <span class="green">mildly approves</span> of ${slave.slaveName}'s belly bulging implant; this supports interest in more unusual implantations.`)); + transformed++; + } + if (isAmputee(slave) || (slave.waist < -95) || (slave.teeth === "pointy") || (slave.teeth === "fangs") || (slave.teeth === "removable") || (slave.hips === 3 && slave.hipsImplant > 0)) { + t.push(new SocialEffect("TransformationFetishist", 1, `Extreme surgery`, + `Society <span class="green">approves</span> of ${his} extreme surgeries; interest in ${him} stirs interest in transformations of all kinds.`)); + transformed++; + } + if (slave.faceImplant > 30 || slave.race !== slave.origRace) { + t.push(new SocialEffect("TransformationFetishist", 1, `Surgically improved`, + `Society <span class="green">approves</span> of ${his} surgically improved appearance; this supports the fashion for surgical corrections.`)); + transformed++; + } + if (slave.faceImplant > 95 && slave.face > 40) { + t.push(new SocialEffect("TransformationFetishist", 1, `Uncannily beautiful face`, + `Society <span class="green">approves</span> of ${his} beautiful face, considering it's uncanny nature a boon rather than a fault; this supports the belief that there is no such thing as too much surgery.`)); + transformed++; + } + let addons = []; + if (hasAnyProstheticLimbs(slave)) { + addons.push("limbs"); + } + if (slave.earT !== "none") { + addons.push("ears"); + } + if (slave.horn !== "none") { + addons.push("horns"); + } + if (slave.tail !== "none") { + addons.push("tail"); + } + if (addons.length > 0) { + t.push(new SocialEffect("TransformationFetishist", Math.min(addons.length, 2), `Transhuman addons`, + `Society <span class="green">strongly approves</span> of ${his} transhuman ${arrayToSentence(addons)}.`)); + transformed += addons.length; + } + if (slave.dick > 8) { + t.push(new SocialEffect("TransformationFetishist", 1, `Giant dick`, + `Society <span class="green">approves</span> of ${his} monolithic dick, since it's such an obvious transformation masterpiece.`)); + transformed++; + } + if (slave.lips > 95) { + t.push(new SocialEffect("TransformationFetishist", 1, `Facepussy`, + `Society <span class="green">approves</span> of ${his} absurd facepussy as a transformation of ${his} mouth into nothing more than another fuckhole.`)); + transformed++; + } + if (slave.nipples === "fuckable") { + t.push(new SocialEffect("TransformationFetishist", 1, `Fuckable nipples`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s fuckable nipples; this supports interest in more unusual body modifications.`)); + transformed++; + } + if (slave.fuckdoll > 0) { + t.push(new SocialEffect("TransformationFetishist", 1, `Fuckdoll`, + `Society <span class="green">approves</span> of your owning a Fuckdoll.`)); + transformed += 5; // total transformation + } + if (transformed === 0) { + t.push(new SocialEffect("TransformationFetishist", -2, `Totally unmodified`, + `Society <span class="red">strongly disapproves</span> of ${slave.slaveName}'s complete lack of any obvious transformations; ${he} does not advance the ideal of body modification.`)); + } else if (transformed === 1) { + t.push(new SocialEffect("TransformationFetishist", -1, `Too few modifications`, + `Society <span class="red">disapproves</span> of ${slave.slaveName}'s mostly-natural appearance; more transformations would help advance the ideal of body modification.`)); + } + } + + if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") { + if (isSlim(slave)) { + t.push(new SocialEffect("SlimnessEnthusiast", 1, `Slim`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s graceful, girlish form; ${he} furthers the fashion for slaves like ${him}.`)); + } + let unslim = []; + if (slave.boobs > 400) { + unslim.push("tits"); + } + if (slave.butt > 4) { + unslim.push("ass"); + } + if (unslim.length > 0) { + t.push(new SocialEffect("SlimnessEnthusiast", -1, `Big tits/ass`, + `Society <span class="red">disapproves</span> of ${slave.slaveName}'s boorishly large ${arrayToSentence(unslim)}; ${he} damages the fashion for slender slaves.`)); + } + } else if (V.arcologies[0].FSAssetExpansionist !== "unset") { + let assets = 0; + if (slave.geneMods.NCS > 0) { + t.push(new SocialEffect("AssetExpansionist", -2, `NCS Youthening`, + `Society <span class="green">strongly disapproves </span> of ${slave.slaveName} who can't get bigger; ${his} shrinking body hurts the fashion for Asset expansion.`)); + assets++; + } + if (slave.boobs > 2000) { + t.push(new SocialEffect("AssetExpansionist", 1, `Titanic tits`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s huge tits; ${his} breasts further the fashion for bouncing boobs on slaves.`)); + assets++; + } + if (slave.butt > 7) { + t.push(new SocialEffect("AssetExpansionist", 1, `Big butt`, + `Society <span class="green">approves</span> of ${his} massive ass; ${his} butt furthers the fashion for big behinds on slaves.`)); + assets++; + } + if (slave.dick > 8) { + t.push(new SocialEffect("AssetExpansionist", slave.dick-8, `Massive member`, + `Society <span class="green">approves</span> of ${his} massive member, which might be nonfunctional, but is a wonder of expansionism.`)); + assets++; + } else if ((slave.dick > 6)) { + t.push(new SocialEffect("AssetExpansionist", 1, `Prodigious penis`, + `Society <span class="green">approves</span> of ${his} enormous penis; ${his} cock furthers the fashion for dangling dicks on slaves.`)); + assets++; + } + if (slave.balls > 6) { + t.push(new SocialEffect("AssetExpansionist", 1, `Tremendous testicles`, + `Society <span class="green">approves</span> of ${his} swinging balls; ${his} nuts further the fashion for tremendous testicles on slaves.`)); + assets++; + } + if (slave.lips > 95) { + t.push(new SocialEffect("AssetExpansionist", 1, `Luscious lips`, + `Society <span class="green">approves</span> of ${his} expanded lips.`)); + assets++; + } + if (assets === 0) { + t.push(new SocialEffect("AssetExpansionist", -1, `Unexceptional assets`, + `Society <span class="red">is disappointed</span> by ${his} normal-sized (or even petite, by expansionist standards) assets.`)); + } + } + + if (V.arcologies[0].FSPastoralist !== "unset") { + if (slave.lactation > 0) { + t.push(new SocialEffect("Pastoralist", 1, `Lactating`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s milky udders; the sight of ${his} creamy milk encourages the public taste for dairy straight from the nipple.`)); + } + if ((slave.assignment === Job.MILKED || slave.assignment === Job.DAIRY) && (slave.balls > 0)) { + t.push(new SocialEffect("Pastoralist", 1, `Cockmilked`, + `Society <span class="green">approves</span> of how ${slave.slaveName} gets cockmilked; the sight of ${his} product encourages experimentation with cum-based concoctions.`)); + } + } + + if (V.arcologies[0].FSPhysicalIdealist !== "unset") { + if (V.arcologies[0].FSPhysicalIdealistLaw === 1) { + if (slave.muscles > 50) { + t.push(new SocialEffect("PhysicalIdealist", 1, `Overmuscled (Fit Feminine)`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s commitment to fitness; but thinks ${his} muscles are too big and vascular.`)); + } else if ((slave.muscles > 20)) { + t.push(new SocialEffect("PhysicalIdealist", 2, `Fit (Fit Feminine)`, + `Society <span class="green">strongly approves</span> of ${slave.slaveName}'s fit body; physical enthusiasts see ${him} as the optimal example of feminine fitness.`)); + } else if ((slave.muscles > 5)) { + t.push(new SocialEffect("PhysicalIdealist", 1, `Toned (Fit Feminine)`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s toned form; the public sees potential in those guns.`)); + } + } else { + if (slave.muscles > 95) { + t.push(new SocialEffect("PhysicalIdealist", 2, `Bodybuilder`, + `Society <span class="green">strongly approves</span> of ${slave.slaveName}'s glorious muscles; everyone wants to train a slave to look as swole as ${him}.`)); + } else if ((slave.muscles > 30)) { + t.push(new SocialEffect("PhysicalIdealist", 1, `Fit`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s fit body; physical enthusiasts see ${him} as on ${his} way to something great.`)); + } else if ((slave.muscles > 5)) { + t.push(new SocialEffect("PhysicalIdealist", 1, `Toned`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s toned form; the public sees potential in those guns.`)); + } + } + if (slave.muscles < -30) { + t.push(new SocialEffect("PhysicalIdealist", -1, `Frail`, + `Society <span class="red">disapproves</span> of ${slave.slaveName}'s frail state; ${he} needs to build some muscles if ${he}'s going to help the public idolize fitness.`)); + } + if (slave.height >= 185) { + t.push(new SocialEffect("PhysicalIdealist", 1, `Tall`, + `Society <span class="green">approves</span> of how tall ${he} is; the sexual advantages of ${his} height are impressed on the public mind.`)); + } + if (slave.health.condition > 80) { + t.push(new SocialEffect("PhysicalIdealist", 1, `Healthy`, + `Society <span class="green">approves</span> of ${his} health; the expectation that slaves should be kept perfectly healthy grows.`)); + } + } else if (V.arcologies[0].FSHedonisticDecadence !== "unset") { + if (slave.weight > 160) { + t.push(new SocialEffect("Hedonistic", 3, `Obese`, + `Society <span class="green">strongly approves</span> of ${slave.slaveName}'s glorious rolls; everyone wants to own a pillowy slave like ${him}.`)); + } else if (slave.weight > 95) { + t.push(new SocialEffect("Hedonistic", 2, `Voluptuous`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s fat body; it shows just how much luxurious your life must be to pamper a slave as much as ${him}.`)); + } else if (slave.weight > 30) { + t.push(new SocialEffect("Hedonistic", 1, `Chubby`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s chubby form; the public enjoys the sight of a well rounded slave.`)); + } else if (slave.weight < -30) { + t.push(new SocialEffect("Hedonistic", -1, `Skin and bones`, + `Society <span class="red">disapproves</span> of ${slave.slaveName}'s emaciated state; let the poor ${girl} eat, for goodness' sake!`)); + } + if (slave.muscles < -30) { + t.push(new SocialEffect("Hedonistic", 1, `Soft and weak`, + `Society <span class="green">approves</span> of how soft ${he} is; the sexual advantages of being able to effortlessly overpower ${him} are not lost on them.`)); + } + if (slave.fetishStrength > 95) { + t.push(new SocialEffect("Hedonistic", 1, `Intense fetish`, + `Society <span class="green">approves</span> of ${his} intense fetish; the expectation that everyone's deepest desires should be fulfilled grows.`)); + } + if (para > 0) { + t.push(new SocialEffect("Hedonistic", 1, `Satisfied paraphilia`, + `Society <span class="green">is pleased</span> that ${he} is allowed to fully indulge ${his} paraphilia.`)); + } else if (para < 0) { + t.push(new SocialEffect("Hedonistic", -2, `Unsatisfied paraphilia`, + `Society <span class="red">frowns</span> upon ${him} not being allowed to indulge in ${his} paraphilia.`)); + } + } + + if (V.arcologies[0].FSChattelReligionist !== "unset") { + if (["cruel retirement counter", "tight steel", "uncomfortable leather"].includes(slave.collar)) { + t.push(new SocialEffect("ChattelReligionist", 1, `Punishing collar`, + `Society <span class="green">approves</span> of ${slave.slaveName}'s collar as an expression of the old ideal of mortification of the flesh, advancing the combination of religious originalism and modern slavery.`)); + } + if (["a burqa", "a chattel habit", "a fallen nuns habit", "a hijab and abaya", "a niqab and abaya", "a penitent nuns habit", "a succubus outfit"].includes(slave.clothes)) { + t.push(new SocialEffect("ChattelReligionist", 1, `Religious clothing`, + `Society <span class="green">approves</span> of ${his} religiously themed clothing, strengthening the connection between sexual servitude and faith.`)); + } else if (["a bunny outfit", "a hijab and blouse", "a huipil", "a kimono", "a military uniform", "a nice maid outfit", "a nice nurse outfit", "a skimpy loincloth", "a slutty qipao", "a toga", "body oil", "chains", "conservative clothing", "nice business attire", "no clothing", "shibari ropes", "uncomfortable straps"].includes(slave.clothes)) { + t.push(new SocialEffect("ChattelReligionist", 0, `Spartan clothing`, + `Society accepts ${his} spartan clothing, seeing it as permissible under the new religious mores.`)); + } else if (slave.fuckdoll === 0) { + t.push(new SocialEffect("ChattelReligionist", -1, `Extravagant clothing`, + `Society <span class="red">disapproves</span> of ${his} unnecessarily gaudy attire; this slows acceptance of a link between faith and sexual servitude.`)); + } + if (slave.devotion > 95) { + t.push(new SocialEffect("ChattelReligionist", 1, `Worshipful`, + `Society <span class="green">approves</span> of ${his} devotion to you as a companion to religious devotion, seeing both as the model for holy slaves.`)); + } + if (slave.trust > 95) { + t.push(new SocialEffect("ChattelReligionist", 2, `Completely trusting`, + `Society <span class="green">strongly approves</span> of ${his} faith in you as a companion to faith in God, seeing both as the model for righteous slaves of the future.`)); + } + if (slave.behavioralFlaw === "devout") { + t.push(new SocialEffect("ChattelReligionist", 0, `Devout`, + `Society does not disapprove of ${his} devout adherence to an old world faith, having confidence that you'll bring ${him} around, and looking forward to seeing ${him} converted into a holy sex object.`)); + } else if ((slave.behavioralQuirk === "sinful")) { + t.push(new SocialEffect("ChattelReligionist", 2, `Sinful`, + `Society <span class="green">strongly approves</span> of ${his} eagerness to transgress against the old world religious mores ${he} once held dear.`)); + } + if (slave.shouldersTat === "sacrilege" && slave.lipsTat === "sacrilege" && slave.boobsTat === "sacrilege" && slave.armsTat === "sacrilege" && slave.backTat === "sacrilege" && slave.stampTat === "sacrilege" && slave.buttTat === "sacrilege" && slave.vaginaTat === "sacrilege" && slave.dickTat === "sacrilege" && slave.anusTat === "sacrilege" && slave.legsTat === "sacrilege" && slave.fuckdoll === 0) { + t.push(new SocialEffect("ChattelReligionist", 1, `Sacrilegious tattoos`, + `Society <span class="green">enjoys the sight</span> of the religious sacrilege scrawled across ${his} skin.`)); + } + } + + return t; + } + + function makeShelterGirlEffects() { + let t = []; + if (slave.fuckdoll === 0) { + if (slave.fetish !== "mindbroken") { + if (isShelterSlave(slave)) { + if ([Job.CLUB, Job.PUBLIC, Job.WHORE, Job.BROTHEL].includes(slave.assignment)) { + if ((slave.trust > 20) && (slave.health.condition > 40)) { + if (V.arcologies[0].FSPaternalist !== "unset") { + t.push(new SocialEffect("Paternalist", 2, "Happy shelter girl", + `Society <span class="green">strongly approves</span> of how you've brought a shelter ${girl} health and happiness.`, true)); + } else if (V.arcologies[0].FSDegradationist === "unset") { + t.push(new SocialEffect(null, 1, "Happy shelter girl", + `The public knows ${he}'s a shelter ${girl} you took in, and is <span class="green">touched</span> that ${he} now seems happy and healthy.`, true)); + } + } + } + } + } + } + return t; + } + + function applySocialEffects() { + function applyFacilityCredit(value) { + switch (slave.assignment) { + case Job.BROTHEL: + getSlaveStatisticData(slave, V.facility.brothel).rep += value; + break; + /* TODO: presumably more go here? */ + } + } + + for (const effect of socialEffects) { + if (effect.FS) { // combined rep & FS + const repChange = FutureSocieties.ChangePorn(effect.FS, effect.magnitude); + if (effect.creditFacility) { + applyFacilityCredit(repChange); + } + } else { // rep only + repX(V.FSSingleSlaveRep * effect.magnitude, "futureSocieties" /* really? */, slave); + if (effect.creditFacility) { + applyFacilityCredit(V.FSSingleSlaveRep * effect.magnitude); + } + } + } + } + + function renderTooltip() { + let el = document.createDocumentFragment(); + let domLine, domCell; + for (const effect of socialEffects) { + domLine = document.createElement('div'); + domLine.style.display = "float"; + domCell = document.createElement('span'); + domCell.style.float = "left"; + domCell.style.width = "3em"; + + let text = ""; + if (Math.round(effect.magnitude) === 0) { + text = '0'; + domCell.className = "grey"; + } else if (effect.magnitude > 0) { + for (let i = 0; i < effect.magnitude; ++i) { + text += "+"; + } + domCell.className = "green"; + } else if (effect.magnitude < 0) { + for (let i = 0; i > effect.magnitude; --i) { + text += "-"; + } + domCell.className = "red"; + } + domCell.append(text); + domLine.append(domCell); + + domLine.append(effect.shortDesc); + if (effect.FS) { + domLine.append(` (${effect.FS})`); + } + el.appendChild(domLine); + } + return el; + } + + function displayCompressed() { + const positiveSum = socialEffects.filter(e => e.magnitude > 0).reduce((acc, cur) => acc += cur.magnitude, 0); + const negativeSum = socialEffects.filter(e => e.magnitude < 0).reduce((acc, cur) => acc += cur.magnitude, 0); + + const sumFrag = document.createDocumentFragment(); + sumFrag.append(`(`); + App.UI.DOM.appendNewElement("span", sumFrag, '+' + positiveSum.toString(), positiveSum > 0 ? "green" : "grey"); + sumFrag.append(`/`); + App.UI.DOM.appendNewElement("span", sumFrag, '-' + Math.abs(negativeSum).toString(), negativeSum < 0 ? "red" : "grey"); // literal '-' + Math.abs needed to handle 0 case + sumFrag.append(`)`); + + const sum = positiveSum + negativeSum; + frag.append(`Society has a `); + if (sum > 0) { + const details = new App.UI.DOM.InteractiveDetails("positive", renderTooltip, ["green"]); + frag.append(details.render(), ` overall view of ${slave.slaveName} `, sumFrag, `, which improves your reputation and advances social progress.`); + } else if (sum === 0) { + const details = new App.UI.DOM.InteractiveDetails("neutral", renderTooltip, ["yellow"]); + frag.append(details.render(), ` overall view of ${slave.slaveName} `, sumFrag, `; ${he} had no net impact on your reputation or social progress this week.`); + } else { + const details = new App.UI.DOM.InteractiveDetails("negative", renderTooltip, ["red"]); + frag.append(details.render(), ` overall view of ${slave.slaveName} `, sumFrag, `, which decreases your reputation and retards social progress.`); + } + } + + function displayLong() { + $(frag).append(socialEffects.map(e => e.longDesc).join(" ")); + } + + const frag = document.createDocumentFragment(); + + let socialEffects = []; + if (V.FSAnnounced > 0) { + V.pornFameBonus = 1; + if (V.studio === 1) { + if (slave.porn.viewerCount > 0) { + V.pornFameBonus += (Math.ceil(slave.porn.viewerCount/100000)); + if (slave.porn.viewerCount >= 100000) { + frag.append(`${His} near-ubiquitous presence in arcology pornography greatly increases ${his} impact on society. `); + } else if ((slave.porn.viewerCount >= 10000)) { + frag.append(`${His} presence in arcology pornography increases ${his} impact on society. `); + } else { + frag.append(`${His} occasional presence in arcology pornography slightly increases ${his} impact on society. `); + } + } + } + socialEffects.push(...makeSocialEffects()); + } + socialEffects.push(...makeShelterGirlEffects()); + if (socialEffects.length > 0) { + applySocialEffects(); + if (!V.UI.compressSocialEffects) { + displayLong(); + } else { + displayCompressed(); + } + } + + return frag; +}; diff --git a/src/gui/options/options.tw b/src/gui/options/options.tw index d0a8a8f67d4..dc70ef5eaac 100644 --- a/src/gui/options/options.tw +++ b/src/gui/options/options.tw @@ -89,6 +89,9 @@ <<run _options.addOption("Master Suite report details such as slave changes are", "verboseDescriptions") .addValue("Enabled", 1).on().addValue("Disabled", 0).off()>> + <<run _options.addOption("End week societal effects from slaves are", "compressSocialEffects", $V.UI) + .addValue("Expanded", 0).on().addValue("Compacted", 1).off()>> + <<run _options.addOption("Accordion on week end defaults to", "useAccordion") .addValue("Open", 0).on().addValue("Collapsed", 1).off()>> diff --git a/src/js/futureSocietyJS.js b/src/js/futureSocietyJS.js index 171cdf6edac..5a4d9f99397 100644 --- a/src/js/futureSocietyJS.js +++ b/src/js/futureSocietyJS.js @@ -478,6 +478,7 @@ globalThis.FutureSocieties = (function() { * @param {string} FSString should be in the FSString2Property object above * @param {number} magnitude size of change * @param {number} [bonusMultiplier=1] multiplier to be applied to FS change (but NOT to rep change) + * @returns {number} reputation change value (for recordkeeping) */ function FSChange(FSString, magnitude, bonusMultiplier = 1) { const arcology = V.arcologies[0]; @@ -486,21 +487,23 @@ globalThis.FutureSocieties = (function() { if (activeFS === undefined) { throw `Bad FS reference ${FSString}`; } else if (Number.isFinite(arcology[activeFS])) { + let repChange = magnitude * V.FSSingleSlaveRep * (arcology[activeFS] / V.FSLockinLevel); if (magnitude < 0) { - repX(magnitude * V.FSSingleSlaveRep * (arcology[activeFS] / V.FSLockinLevel) / 3, 'futureSocieties'); // Reducing the reputation impact of slaves that are not adhering to societal ideals properly - } else { - repX(magnitude * V.FSSingleSlaveRep * (arcology[activeFS] / V.FSLockinLevel), 'futureSocieties'); + repChange /= 3; // Reducing the reputation impact of slaves that are not adhering to societal ideals properly } + repX(repChange, 'futureSocieties'); arcology[activeFS] += 0.05 * magnitude * V.FSSingleSlaveRep * bonusMultiplier; + return repChange; } } /** call as FutureSocieties.ChangePorn() * @param {string} FSString should be in the FSString2Property object above * @param {number} magnitude size of change + * @returns {number} reputation change value (for recordkeeping) */ function FSChangePorn(FSString, magnitude) { - FSChange(FSString, magnitude, V.pornFameBonus); + return FSChange(FSString, magnitude, V.pornFameBonus); } /** diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw index df8d969d308..6755aced2b0 100644 --- a/src/uncategorized/saLongTermEffects.tw +++ b/src/uncategorized/saLongTermEffects.tw @@ -4943,826 +4943,7 @@ <</if>> <</if>> -<<if $FSAnnounced > 0>> - - <<set $pornFameBonus = 1>> - <<if $studio == 1>> - <<if $slaves[$i].porn.viewerCount > 0>> - <<set $pornFameBonus += (Math.ceil($slaves[$i].porn.viewerCount/100000))>> - <<if ($slaves[$i].porn.viewerCount >= 100000)>> - $His near-ubiquitous presence in arcology pornography greatly increases $his impact on society. - <<elseif ($slaves[$i].porn.viewerCount >= 10000)>> - $His presence in arcology pornography increases $his impact on society. - <<else>> - $His occasional presence in arcology pornography slightly increases $his impact on society. - <</if>> - <</if>> - <</if>> - - <<if $arcologies[0].FSPaternalist != "unset" || $arcologies[0].FSDegradationist != "unset" || $arcologies[0].FSBodyPurist != "unset">> - <<set _modScore = SlaveStatsChecker.modScore($slaves[$i])>> - <</if>> - - <<if $arcologies[0].FSSupremacist != "unset">> - <<if ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>> - <<if ["be confined in the arcade", "serve the public", "serve in the club", "whore", "work a glory hole", "work in the brothel"].includes($slaves[$i].assignment)>> - <<if $arcologies[0].FSSupremacist >= $FSLockinLevel*0.6>> - Society @@.red;strongly disapproves@@ of your keeping a slave of the $arcologies[0].FSSupremacistRace race in a degrading, public role; this also holds back acceptance of $arcologies[0].FSSupremacistRace superiority. - <<elseif $arcologies[0].FSSupremacist >= $FSLockinLevel*0.3>> - Society @@.red;disapproves@@ of your keeping a slave of the $arcologies[0].FSSupremacistRace race in a degrading, public role; this also holds back acceptance of $arcologies[0].FSSupremacistRace superiority. - <<else>> - Society @@.red;disapproves@@ of your keeping a slave of the $arcologies[0].FSSupremacistRace race in a degrading, public role; this also holds back acceptance of $arcologies[0].FSSupremacistRace superiority. - <</if>> - <<run FutureSocieties.ChangePorn("Supremacist", -1)>> - <<switch $slaves[$i].assignment>> - <<case "work in the brothel">><<run getSlaveStatisticData($slaves[$i], $facility.brothel).rep -= $FSSingleSlaveRep*($arcologies[0].FSSupremacist/$FSLockinLevel)>> - <</switch>> - <<elseif ($slaves[$i].assignment == "be your Head Girl")>> - Society @@.green;strongly approves@@ of your keeping a slave of the $arcologies[0].FSSupremacistRace race in a position of leadership as your Head Girl, advancing the notion that those of the $arcologies[0].FSSupremacistRace race should be in positions of authority over others. - <<run FutureSocieties.ChangePorn("Supremacist", 2)>> - <<elseif ($slaves[$i].assignment == "recruit girls")>> - Society @@.green;strongly approves@@ of your keeping a slave of the $arcologies[0].FSSupremacistRace race in a position of leadership as your recruiter, advancing the notion that it is only natural that those of the $arcologies[0].FSSupremacistRace race should lead the charge in enslaving others. - <<run FutureSocieties.ChangePorn("Supremacist", 2)>> - <<elseif ($slaves[$i].assignment == "be your Concubine")>> - Society @@.green;strongly approves@@ of your keeping a slave of the $arcologies[0].FSSupremacistRace race in a position of importance as your concubine, advancing the notion that the most favored of your bedslaves should naturally be of the $arcologies[0].FSSupremacistRace race. - <<run FutureSocieties.ChangePorn("Supremacist", 2)>> - /* Code contributed by Anon1888 */ - <<else>> - Society does not disapprove of your keeping a slave of the $arcologies[0].FSSupremacistRace race, since $he is not in a publicly degrading role. - <</if>> - <<if $slaves[$i].pregKnown == 1>> - <<if $slaves[$i].pregSource > 0>> - <<set _saLTE = findFather($slaves[$i].pregSource)>> - <<if def _saLTE>> - <<if ($slaves[$i].race != _saLTE.race) && ($arcologies[0].FSSupremacistRace == "mixed race")>> - Society @@.lightgreen;approves@@ of your using slave breeders like $slaves[$i].slaveName to propagate the $arcologies[0].FSSupremacistRace civilization. - <<run FutureSocieties.ChangePorn("Supremacist", 2)>> - <<elseif $slaves[$i].race != _saLTE.race>> - Society @@.red;strongly disapproves@@ of your allowing a pure $arcologies[0].FSSupremacistRace slave to be miscegenated by _saLTE.slaveName. - <<run FutureSocieties.ChangePorn("Supremacist", -2)>> - <<else>> - Society @@.green;strongly approves@@ of your using slave breeders like $slaves[$i].slaveName to propagate the $arcologies[0].FSSupremacistRace civilization. - <<run FutureSocieties.ChangePorn("Supremacist", 2)>> - <</if>> - <</if>> - <</if>> - <</if>> - <<if $slaves[$i].fuckdoll > 0>> - Society @@.red;strongly disapproves@@ of your owning a $arcologies[0].FSSupremacistRace Fuckdoll. - <<run FutureSocieties.ChangePorn("Supremacist", -2)>> - <</if>> - <<else>> - <<if $arcologies[0].FSSupremacist >= $FSLockinLevel*0.5>> - Society @@.green;approves@@ of your keeping a slave of an inferior race; this also advances $arcologies[0].FSSupremacistRace superiority. - <<else>> - Society @@.green;approves@@ of your keeping a slave of an inferior race; this also advances $arcologies[0].FSSupremacistRace superiority. - <</if>> - <<run FutureSocieties.ChangePorn("Supremacist", 1)>> - <<if $slaves[$i].fuckdoll > 0>> - Society @@.green;approves@@ of your keeping a Fuckdoll of an inferior race. - <<run FutureSocieties.ChangePorn("Supremacist", 1)>> - <</if>> - <</if>> - <</if>> - - <<if $arcologies[0].FSSubjugationist != "unset">> - <<if ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>> - <<if $arcologies[0].FSSubjugationist >= $FSLockinLevel*0.5>> - Society @@.green;approves@@ of your keeping a slave of the subject $arcologies[0].FSSubjugationistRace race; this also advances $arcologies[0].FSSubjugationistRace inferiority. - <<else>> - Society @@.green;approves@@ of your keeping a slave of the subject $arcologies[0].FSSubjugationistRace race; this also advances $arcologies[0].FSSubjugationistRace inferiority. - <</if>> - <<run FutureSocieties.ChangePorn("Subjugationist", 1)>> - <<if $slaves[$i].ovaries == 0>> - <<if $slaves[$i].balls == 0 || $slaves[$i].vasectomy == 1>> - Society @@.green;approves@@ of $slaves[$i].slaveName's <<if $slaves[$i].vasectomy == 1 && $slaves[$i].balls > 0>>vasectomy<<elseif $slaves[$i].dick > 0>>gelding<<else>>sterilization<</if>>, which ensures that $he will not propagate the $arcologies[0].FSSubjugationistRace race. - <<run FutureSocieties.ChangePorn("Subjugationist", 1)>> - <</if>> - <</if>> - <<if $slaves[$i].fuckdoll > 0>> - Society @@.green;approves@@ of your keeping a Fuckdoll of the $arcologies[0].FSSubjugationistRace race. - <<run FutureSocieties.ChangePorn("Subjugationist", 1)>> - <</if>> - <<else>> - <<if $slaves[$i].pregKnown == 1 && $slaves[$i].pregSource > 0>> - <<set _lte = findFather($slaves[$i].pregSource)>> - <<if ndef _lte>>@@.red;Error, pregSource not found.@@<</if>> - <<if _lte.race == $arcologies[0].FSSubjugationistRace>> - Society @@.red;strongly disapproves@@ of your allowing $slaves[$i].slaveName to be miscegenated by a $arcologies[0].FSSubjugationistRace subhuman like _lte.slaveName. - <<run FutureSocieties.ChangePorn("Subjugationist", -2)>> - <</if>> - <</if>> - <</if>> - <</if>> - - <<if $arcologies[0].FSYouthPreferentialist != "unset">> - <<if ($slaves[$i].geneMods.NCS > 0) && ($slaves[$i].visualAge <= 18)>> - Society @@.green;strongly approves@@ of you keeping $slaves[$i].slaveName forever young and youthening; this furthers the fashion for young slaves. - <<run FutureSocieties.ChangePorn("YouthPreferentialist", 2)>> - <<elseif ($slaves[$i].visualAge < 30)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's youthful body; $he furthers the fashion for young slaves. - <<set _youth_rep_change = ((30-$slaves[$i].visualAge)/5)>> - <<run FutureSocieties.ChangePorn("YouthPreferentialist", _youth_rep_change)>> - <</if>> - <<elseif $arcologies[0].FSMaturityPreferentialist != "unset">> - <<if ($slaves[$i].visualAge >= 30)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's mature body; $he furthers the fashion for older ladies. - <<set _maturity_rep_change = (($slaves[$i].visualAge-25)/5)>> - <<run FutureSocieties.ChangePorn("MaturityPreferentialist", _maturity_rep_change)>> - <</if>> - <</if>> - - <<if $arcologies[0].FSPetiteAdmiration != "unset">> - <<if heightPass($slaves[$i])>> - Society @@.green;approves@@ of keeping a slave as short as $slaves[$i].slaveName is; $he furthers the fashion for shorter slaves. - <<run FutureSocieties.ChangePorn("PetiteAdmiration", 1)>> - <<elseif $slaves[$i].height >= 170>> - Society @@.red;frowns@@ at keeping a slave as tall as $slaves[$i].slaveName; $he hinders the fashion for shorter slaves. - <<run FutureSocieties.ChangePorn("PetiteAdmiration", -1)>> - <</if>> - <<elseif $arcologies[0].FSStatuesqueGlorification != "unset">> - <<if heightPass($slaves[$i])>> - Society @@.green;approves@@ of keeping a slave as tall as $slaves[$i].slaveName is; $he furthers the fashion for taller slaves. - <<run FutureSocieties.ChangePorn("StatuesqueGlorification", 1)>> - <<else>> - Society @@.red;frowns@@ at keeping someone as embarrassingly short as $slaves[$i].slaveName; $he hinders the fashion for taller slaves. - <<run FutureSocieties.ChangePorn("StatuesqueGlorification", -1)>> - <</if>> - <</if>> - - <<if $arcologies[0].FSGenderRadicalist != "unset">> - <<if ($slaves[$i].balls > 0) && ($slaves[$i].dick > 0) && ($slaves[$i].hormoneBalance >= 100)>> - Society @@.green;approves@@ of your heavy hormonal feminization of $slaves[$i].slaveName; this advances public interest in <<= $girl>>s with soft little dicks. - <<run FutureSocieties.ChangePorn("GenderRadicalist", 1)>> - <<elseif ($slaves[$i].balls > 0) && ($slaves[$i].pubertyXY == 0) && ($slaves[$i].physicalAge >= $potencyAge)>> - Society @@.green;approves@@ of you keeping $slaves[$i].slaveName from going through puberty; this advances public interest in <<= $girl>>s with soft little dicks. - <<run FutureSocieties.ChangePorn("GenderRadicalist", 2)>> - <<elseif ($slaves[$i].dick > 0) && ($slaves[$i].balls == 0)>> - Society @@.green;approves@@ of your keeping a gelded slave; this advances public interest in <<= $girl>>s with soft dickclits. - <<run FutureSocieties.ChangePorn("GenderRadicalist", 1)>> - <<elseif ($slaves[$i].dick > 0) && ($slaves[$i].anus > 0) && ($slaves[$i].devotion > 20) && ($slaves[$i].trust >= -20)>> - Society @@.green;approves@@ of your keeping a contented dickgirl bottom; this advances public interest in <<= $girl>>s who get hard when assfucked. - <<run FutureSocieties.ChangePorn("GenderRadicalist", 1)>> - <</if>> - <<elseif $arcologies[0].FSGenderFundamentalist != "unset">> - <<if $arcologies[0].FSRestart == "unset">> - <<if ($slaves[$i].bellyPreg >= 1500)>> - Society <<if $arcologies[0].FSGenderFundamentalist >= $FSLockinLevel*0.5>>@@.green;strongly approves@@<<else>>@@.green;approves@@<</if>> of your keeping a pregnant slave; this also supports the idea that slave women should bear babies. - <<run FutureSocieties.ChangePorn("GenderFundamentalist", 1)>> - <<elseif ($slaves[$i].preg == 0) && isFertile($slaves[$i])>> - Society <<if $arcologies[0].FSGenderFundamentalist >= $FSLockinLevel*0.5>>@@.green;strongly approves@@<<else>>@@.green;approves@@<</if>> of your keeping a slave fertile; this also supports the idea that slave women should bear babies. - <<run FutureSocieties.ChangePorn("GenderFundamentalist", 1)>> - <</if>> - <<else>> - <<if ($slaves[$i].hips > $slaves[$i].shoulders)>> - Society @@.green;approves@@ of keeping a slave with a feminine figure. - <<run FutureSocieties.ChangePorn("GenderFundamentalist", 1)>> - <</if>> - <</if>> - <<if ($slaves[$i].intelligenceImplant > 15 || $slaves[$i].intelligenceImplant < 0) && $arcologies[0].FSGenderFundamentalistLawBimbo == 1>> - Society @@.red;disapproves@@ of encouraging a woman's education. - <<run FutureSocieties.ChangePorn("GenderFundamentalist", -1)>> - <</if>> - <<if ($slaves[$i].devotion <= 95) && canPenetrate($slaves[$i])>> - Society @@.red;disapproves@@ of $slaves[$i].slaveName's stiff, unrestrained dick, since $he isn't even worshipful of you. - <<run FutureSocieties.ChangePorn("GenderFundamentalist", -1)>> - <</if>> - <</if>> - - <<if $arcologies[0].FSRepopulationFocus != "unset">> - <<if $slaves[$i].preg > $slaves[$i].pregData.normalBirth/1.33>> - <<if $slaves[$i].pregType >= 20>> - Society is @@.green;very pleased@@ at $slaves[$i].slaveName's dedication to pregnancy. - <<run FutureSocieties.ChangePorn("RepopulationFocus", 5)>> - <<elseif $slaves[$i].pregType >= 10>> - Society is @@.green;pleased@@ by $slaves[$i].slaveName's abnormally large pregnancy. - <<run FutureSocieties.ChangePorn("RepopulationFocus", 3)>> - <<else>> - Society is @@.green;pleased@@ by $slaves[$i].slaveName's advanced pregnancy. - <<run FutureSocieties.ChangePorn("RepopulationFocus", 2)>> - <</if>> - <<if $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>> - They just wish it wasn't <<print $arcologies[0].FSSubjugationistRace>>, of course. - <<elseif $arcologies[0].FSSupremacist != "unset" && ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>> - The fact that $he is $arcologies[0].FSSupremacistRace only makes it better. - <</if>> - <<elseif $slaves[$i].weight > 130>> - $slaves[$i].slaveName is so fat, society just assumes there is a baby somewhere in there, though they wish it was more obvious. - <<if $slaves[$i].pregWeek < 0>> - But fortunately for $him, word of $his recent birth has gotten around @@.green;reassuring the masses@@ that $he can still bear children. - <<run FutureSocieties.ChangePorn("RepopulationFocus", 2)>> - <<elseif $slaves[$i].collar == "preg biometrics">> - <<if $slaves[$i].preg > 0>> - @@.green;Their wish is granted@@ by $slaves[$i].slaveName's collar revealing $his womb's secret<<if $slaves[$i].pregType > 1>>s<</if>> even when $his body is trying its best to keep <<if $slaves[$i].pregType > 1>>them<<else>>it<</if>> hidden. - <<run FutureSocieties.ChangePorn("RepopulationFocus", 1)>> - <<if $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>> - They just wish it wasn't <<print $arcologies[0].FSSubjugationistRace>>, of course. - <<elseif $arcologies[0].FSSupremacist != "unset" && ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>> - The fact that $he is $arcologies[0].FSSupremacistRace only makes it better. - <</if>> - <<elseif $slaves[$i].preg <= 0>> - @@.red;The illusion is shattered@@ by $slaves[$i].slaveName's collar revealing $his vacant womb. - <<run FutureSocieties.ChangePorn("RepopulationFocus", -2)>> - <</if>> - <</if>> - <<elseif $slaves[$i].bellyPreg >= 1500>> - Society is @@.green;pleased@@ by $slaves[$i].slaveName's pregnancy. - <<run FutureSocieties.ChangePorn("RepopulationFocus", 1)>> - <<if $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>> - They just wish it wasn't <<print $arcologies[0].FSSubjugationistRace>>, of course. - <<elseif $arcologies[0].FSSupremacist != "unset" && ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>> - The fact that $he is $arcologies[0].FSSupremacistRace only makes it better. - <</if>> - <<elseif $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace) && $slaves[$i].bellyImplant >= 1500>> - Society @@.green;is satisfied@@ with $slaves[$i].slaveName's implant filled belly since $his kind really shouldn't be breeding. - <<run repX(0.1*$FSSingleSlaveRep, "futureSocieties", $slaves[$i])>> - <<elseif $slaves[$i].bellyImplant >= 1500 && (($slaves[$i].ovaries == 0 && $slaves[$i].mpreg == 0) || $slaves[$i].preg < -1)>> - Society @@.green;accepts@@ $slaves[$i].slaveName's implant filled belly due to $his infertility. - <<run repX(0.1*$FSSingleSlaveRep, "futureSocieties", $slaves[$i])>> - <<elseif $slaves[$i].collar == "preg biometrics" && $slaves[$i].preg > 0>> - Society is @@.green;pleased@@ by $slaves[$i].slaveName's collar revealing $his womb's secret<<if $slaves[$i].pregType > 1>>s<</if>> even when $his body is trying its best to keep <<if $slaves[$i].pregType > 1>>them<<else>>it<</if>> hidden. - <<run FutureSocieties.ChangePorn("RepopulationFocus", 1)>> - <<if $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>> - They just wish it wasn't <<print $arcologies[0].FSSubjugationistRace>>, of course. - <<elseif $arcologies[0].FSSupremacist != "unset" && ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>> - The fact that $he is $arcologies[0].FSSupremacistRace only makes it better. - <</if>> - <<elseif $slaves[$i].pregWeek < 0>> - Society is @@.green;pleased@@ by $slaves[$i].slaveName's recent birth. - <<run FutureSocieties.ChangePorn("RepopulationFocus", 2)>> - <<elseif setup.fakeBellies.includes(_bellyAccessory)>> - Society is @@.green;placated@@ by $slaves[$i].slaveName's fake belly. - <<run repX(0.01*$FSSingleSlaveRep, "futureSocieties", $slaves[$i])>> - <<elseif $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>> - Society is perfectly fine with $slaves[$i].slaveName not reproducing. $His belly is still unattractively small, however. - <<elseif ($slaves[$i].ovaries == 0 && $slaves[$i].mpreg == 0) || ($slaves[$i].preg < -1) || ($slaves[$i].pubertyXX == 0)>> - Society is @@.red;mildly disappointed@@ that $slaves[$i].slaveName is unable to become pregnant. - <<run FutureSocieties.ChangePorn("RepopulationFocus", -1)>> - <<elseif $slaves[$i].preg == -1>> - Society is @@.red;disapproving@@ of $slaves[$i].slaveName's contraceptive regimen. - <<run FutureSocieties.ChangePorn("RepopulationFocus", -2)>> - <<else>> - Society is @@.red;disapproving@@ of $slaves[$i].slaveName's lack of a baby bump. - <<run FutureSocieties.ChangePorn("RepopulationFocus", -2)>> - <</if>> - <<if $slaves[$i].abortionTat > 0>> - Society @@.red;is disgusted@@ by the tally of aborted children adorning $his skin. - <<run FutureSocieties.ChangePorn("RepopulationFocus", -1)>> - <</if>> - <<if $slaves[$i].birthsTat > 0>> - Society @@.green;is pleased@@ by the tally of successful births adorning $his skin. - <<run FutureSocieties.ChangePorn("RepopulationFocus", 1)>> - <</if>> - <<elseif $arcologies[0].FSRepopulationFocusPregPolicy == 1>> - <<if $slaves[$i].preg > 30>> - Society @@.green;loves@@ $slaves[$i].slaveName's advanced pregnancy. It's very trendy. - <<run repX(Math.trunc($FSSingleSlaveRep), "futureSocieties", $slaves[$i])>> - <<elseif $slaves[$i].bellyPreg >= 1500>> - Society @@.green;enjoys@@ $slaves[$i].slaveName's pregnancy. Being heavy with child is in right now. - <<run repX(Math.trunc($FSSingleSlaveRep/2), "futureSocieties", $slaves[$i])>> - <</if>> - <<elseif $arcologies[0].FSRestart != "unset">> - <<if $slaves[$i].chastityVagina>> - Society is @@.green;mildly pleased@@ at you keeping $his vagina in check. - <<run FutureSocieties.ChangePorn("Eugenics", 1)>> - <</if>> - <<if $slaves[$i].chastityPenis>> - Society is @@.green;mildly pleased@@ at you keeping $his dick in check. - <<run FutureSocieties.ChangePorn("Eugenics", 1)>> - <</if>> - <<if $slaves[$i].breedingMark == 1 && $propOutcome == 1>> - <<if $slaves[$i].pregKnown == 1 && ($slaves[$i].pregSource == -1 || $slaves[$i].pregSource == -6)>> - The Societal Elite @@.green;are pleased@@ <<if $slaves[$i].pregSource == -1>>your<<elseif $slaves[$i].pregSource == -6>>an Elite<</if>> child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> growing within $him. The mark covering $his lower belly, coupled with $his gravidity and blessing, @@.green;enamors@@ your populace. - <<set $failedElite -= (5 + $slaves[$i].pregType)>> - <<run FutureSocieties.ChangePorn("Eugenics", 3)>> - <<if $slaves[$i].abortionTat > 0>> - The <<if $slaves[$i].abortionTat > 1>>tally of aborted children<<else>>tattoo marking an aborted child<</if>> adorning $his middle @@.red;is worrying,@@ however. - <<run FutureSocieties.ChangePorn("Eugenics", -1)>> - <</if>> - <</if>> - <<else>> - <<if $slaves[$i].preg > $slaves[$i].pregData.normalBirth/1.33>> - <<if $slaves[$i].pregType >= 10>> - Society is @@.red;furious@@ at $slaves[$i].slaveName's infested womb. - <<run FutureSocieties.ChangePorn("Eugenics", -10)>> - <<elseif $slaves[$i].pregType >= 4>> - Society is @@.red;disgusted@@ by $slaves[$i].slaveName's abnormally large pregnancy. - <<run FutureSocieties.ChangePorn("Eugenics", -5)>> - <<else>> - Society is @@.red;greatly displeased@@ by $slaves[$i].slaveName's advanced pregnancy. - <<run FutureSocieties.ChangePorn("Eugenics", -3)>> - <</if>> - <<elseif $slaves[$i].bellyPreg >= 1500>> - Society is @@.red;very displeased@@ by $slaves[$i].slaveName's pregnancy. - <<run FutureSocieties.ChangePorn("Eugenics", -2)>> - <<elseif $slaves[$i].preg < -1 and $slaves[$i].vagina > -1>> - Society is @@.green;pleased@@ that $slaves[$i].slaveName is unable to become pregnant. - <<run FutureSocieties.ChangePorn("Eugenics", 2)>> - <</if>> - <<if $slaves[$i].abortionTat > 0>> - The tally of aborted pregnancies adorning $his middle shows @@.green;just how responsible@@ of an owner $he has. - <<run FutureSocieties.ChangePorn("Eugenics", 1)>> - <</if>> - <<if $slaves[$i].pregKnown == 1 && $eugenicsFullControl != 1>> - The Societal Elite @@.red;judge you@@ for keeping pregnant slaves. It falls to the slaveowner to deal with subhuman pregnancies and you are failing in your duties as a member of the Elite. - <<set $failedElite += (5 + $slaves[$i].pregType)>> - <</if>> - <</if>> - <<if $slaves[$i].balls > 0 && $slaves[$i].pubertyXY == 1 && $slaves[$i].vasectomy == 0>> - Society @@.red;disapproves@@ of $his working testicles. - <<run FutureSocieties.ChangePorn("Eugenics", -$slaves[$i].balls)>> - <<elseif $slaves[$i].dick > 0 && $slaves[$i].balls > 0 && $slaves[$i].vasectomy == 1>> - Society @@.green;approves@@ of $his vasectomy. - <<run FutureSocieties.ChangePorn("Eugenics", 1)>> - <<elseif $slaves[$i].dick > 0 && $slaves[$i].balls > 0 && $slaves[$i].ballType == "sterile">> - Society @@.green;approves@@ of $his useless testicles. - <<run FutureSocieties.ChangePorn("Eugenics", 1)>> - <<elseif $slaves[$i].dick > 0 && $slaves[$i].balls == 0>> - Society @@.green;approves@@ of $his lack of testicles. - <<run FutureSocieties.ChangePorn("Eugenics", 2)>> - <</if>> - <</if>> - <<if $arcologies[0].FSRepopulationFocusMilfPolicy == 1 && $slaves[$i].counter.birthsTotal > 0>> - Society @@.green;loves@@ MILFs and as a mother, $slaves[$i].slaveName fits right in. - <<run repX(Math.trunc($FSSingleSlaveRep), "futureSocieties", $slaves[$i])>> - <</if>> - - <<if $arcologies[0].FSPaternalist != "unset">> - <<if ($slaves[$i].geneMods.NCS > 0) && ($slaves[$i].visualAge <= $potencyAge) && ($slaves[$i].physicalAge >= $potencyAge)>> - Society @@.green;approves@@ of you keeping $slaves[$i].slaveName perpetually young and innocent looking so you can keep taking care of $him; this advances paternalistic ideals. - <<run FutureSocieties.ChangePorn("Paternalist", 1)>> - <<elseif ($slaves[$i].intelligenceImplant >= 15) && ($slaves[$i].fetish != "mindbroken")>> - Society @@.green;approves@@ of $slaves[$i].slaveName being properly educated; this advances ideas about slave improvement. - <<run FutureSocieties.ChangePorn("Paternalist", 1)>> - <</if>> - <<if ($slaves[$i].fetish != "mindbroken")>> - <<if ($slaves[$i].intelligenceImplant <= -15)>> - Society @@.red;is appalled@@ by $slaves[$i].slaveName's twisted education; it goes against paternalistic values. - <<run FutureSocieties.ChangePorn("Paternalist", -2)>> - <<elseif ($arcologies[0].FSGenderFundamentalistLawBimbo != 1 && $arcologies[0].FSIntellectualDependency == "unset") && ($slaves[$i].intelligenceImplant < 15)>> - <<if ($slaves[$i].assignment != "learn in the schoolroom") && ($slaves[$i].assignment != "take classes")>> - Society @@.red;disapproves@@ of $slaves[$i].slaveName being uneducated; this holds back ideas about slave improvement. - <<run FutureSocieties.ChangePorn("Paternalist", -1)>> - <</if>> - <</if>> - <</if>> - <<if ($slaves[$i].health.condition > 80)>> - Society @@.green;approves@@ of $his shining health; this advances belief in a slaveowner's duty. - <<run FutureSocieties.ChangePorn("Paternalist", 1)>> - <</if>> - <<if ($slaves[$i].devotion+$slaves[$i].trust > 180)>> - <<if ($slaves[$i].relationship == -3)>> - Society @@.green;approves very strongly@@ of $his happiness as your $wife; this advances paternalistic ideals. - <<run FutureSocieties.ChangePorn("Paternalist", 5)>> - <<elseif ($slaves[$i].relationship == -2)>> - Society @@.green;strongly approves@@ of $his emotional bond to you; this advances paternalistic ideals. - <<run FutureSocieties.ChangePorn("Paternalist", 2)>> - <<else>> - Society @@.green;approves@@ of $his attachment to you; this advances paternalistic ideals. - <<run FutureSocieties.ChangePorn("Paternalist", 1)>> - <</if>> - <<else>> - <<if ($slaves[$i].devotion > 95)>> - Society @@.green;approves@@ of $his attachment to you; this advances paternalistic ideals. - <<run FutureSocieties.ChangePorn("Paternalist", 1)>> - <</if>> - <<if ($slaves[$i].trust > 95)>> - Society @@.green;approves@@ of $his trust in you; this advances paternalistic ideals. - <<run FutureSocieties.ChangePorn("Paternalist", 1)>> - <</if>> - <</if>> - <<if ($slaves[$i].choosesOwnAssignment == 1)>> - Society @@.green;approves@@ of $slaves[$i].slaveName being allowed to choose $his own job, advancing ideals about slave self-actualization. - <<run FutureSocieties.ChangePorn("Paternalist", 1)>> - <</if>> - <<if ($slaves[$i].relationship == -3)>> - <<if $slaves[$i].fetish == "mindbroken">> - Society is mixed over your marriage to the mindbroken $girl; on one hand $he had no consent, but on the other, you @@.green;surely must love $him@@ to marry $him. - <<run FutureSocieties.ChangePorn("Paternalist", 1)>> - <<elseif ($slaves[$i].devotion <= 20)>> - Society is @@.red;thoroughly disgusted@@ that you took $his hand in marriage by force. - <<run FutureSocieties.ChangePorn("Paternalist", -3)>> - <</if>> - <</if>> - <<if (_modScore.total > 15 || (_modScore.piercing > 8 && _modScore.tat > 5))>> - Society @@.red;disapproves@@ of $his degrading body modifications, which dulls the public interest in letting slaves choose their own appearance. - <<run FutureSocieties.ChangePorn("Paternalist", -1)>> - <</if>> - <<if $slaves[$i].fuckdoll > 0>> - Society @@.red;strongly disapproves@@ of your owning a Fuckdoll. - <<run FutureSocieties.ChangePorn("Paternalist", -2)>> - <<elseif !canWalk($slaves[$i]) && canMove($slaves[$i]) && $slaves[$i].rules.mobility != "permissive">> - Society @@.red;disapproves@@ that you are forcing $him to crawl instead of aiding $his mobility. - <<run FutureSocieties.ChangePorn("Paternalist", -1)>> - <</if>> - <<elseif $arcologies[0].FSDegradationist != "unset">> - <<if ($slaves[$i].fetish == "mindbroken")>> - Society @@.green;approves@@ of $his broken spirit; $he serves as an example of a soulless fuckpuppet. - <<run FutureSocieties.ChangePorn("Degradationist", 1)>> - <<else>> - <<if ($slaves[$i].trust <= 4)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's fear of you. - <<run FutureSocieties.ChangePorn("Degradationist", 1)>> - <<else>> - <<if ($slaves[$i].assignment == "be your Head Girl")>> - Society accepts $slaves[$i].slaveName trusting you, since $he is your Head Girl and keeps the other slaves down. - <<elseif ($slaves[$i].assignment == "recruit girls")>> - Society accepts $slaves[$i].slaveName trusting you, since $he is your Recruiter and entraps new slaves. - <<elseif ($slaves[$i].devotion > 95)>> - Society reluctantly accepts of $slaves[$i].slaveName trusting you, since $he is worshipful of you. - <<else>> - Society @@.red;disapproves@@ of $slaves[$i].slaveName being trusting of you; $he is not being properly degraded for $his role. - <<run FutureSocieties.ChangePorn("Degradationist", -1)>> - <</if>> - <</if>> - <<if ($slaves[$i].intelligenceImplant <= -15)>> - Society @@.reputation.inc;is amused@@ by $slaves[$i].slaveName's education and how much it hinders critical thought. - <<run FutureSocieties.ChangePorn("Degradationist", 1)>> - <</if>> - <</if>> - <<if ($slaves[$i].assignment == "work a glory hole") || ($slaves[$i].assignment == "be confined in the arcade")>> - Society @@.green;approves@@ of how $he is restrained for involuntary use, seeing this as the future of sexual relations. - <<run FutureSocieties.ChangePorn("Degradationist", 1)>> - <</if>> - <<if (_modScore.total > 15 || (_modScore.piercing > 8 && _modScore.tat > 5))>> - Society @@.green;approves@@ of $his many body modifications, which advances the public taste for such degradation of slave bodies. - <<run FutureSocieties.ChangePorn("Degradationist", 1)>> - <</if>> - <<if $slaves[$i].abortionTat > 0 && $arcologies[0].FSRepopulationFocus == "unset">> - Society @@.green;<<if $arcologies[0].FSRestart != "unset">>greatly <</if>>approves@@ of $his tally of aborted children. - <<if $arcologies[0].FSRestart != "unset">> - <<run FutureSocieties.ChangePorn("Degradationist", 2)>> - <<else>> - <<run FutureSocieties.ChangePorn("Degradationist", 1)>> - <</if>> - <</if>> - <<if $slaves[$i].voice != 0>> - <<if $slaves[$i].lips > 95>> - Society @@.green;approves@@ of the way $his mouth, with its useless ability to speak, has been replaced with an appealing hole. - <<run FutureSocieties.ChangePorn("Degradationist", 1)>> - <</if>> - <</if>> - <<if ($slaves[$i].choosesOwnAssignment == 1)>> - Society @@.red;disapproves@@ of $slaves[$i].slaveName being allowed to choose $his own job; this holds back ideas about slave degradation. - <<run FutureSocieties.ChangePorn("Degradationist", -1)>> - <</if>> - <<if $slaves[$i].fuckdoll > 0>> - Society @@.green;approves@@ of your owning a Fuckdoll. - <<run FutureSocieties.ChangePorn("Degradationist", 1)>> - <<elseif !canWalk($slaves[$i]) && canMove($slaves[$i]) && $slaves[$i].rules.mobility == "restrictive">> - Society @@.green;approves@@ that $he is forced to crawl like the dog $he is. - <<run FutureSocieties.ChangePorn("Degradationist", 1)>> - <</if>> - <</if>> - - /* pregmod */ - <<if !(jQuery.isEmptyObject($slaves[$i].scar))>> - <<set _hasScar = 0>> - <<for _scarPlace, _scar range $slaves[$i].scar>> /* loop through all body parts */ - <<for _scarType, _scar range $slaves[$i].scar[_scarPlace]>> /* loop through all scar types */ - <<if _scarPlace === "exotic">> /* exotic scars don't count */ - <<continue>> - <<elseif _scar>> /*any other scar greater than 0 does */ - <<if $arcologies[0].FSDegradationist != "unset">> - Society @@.green;mildly approves@@ of your slave's scarring; this encourages the further abuse of slaves. - <<run FutureSocieties.ChangePorn("Degradationist", 1)>> - <<elseif $arcologies[0].FSPaternalist != "unset">> - Society @@.red;mildly disapproves@@ of your scarred slaves, viewing them as a sign of mistreatment. - <<run FutureSocieties.ChangePorn("Paternalist", -1)>> - <</if>> - <<set _hasScar = 1>> - <<break>> - <</if>> - <</for>> - <<if _hasScar>> - <<break>> - <</if>> - <</for>> - <</if>> - - <<if $arcologies[0].FSIntellectualDependency != "unset">> - <<if $arcologies[0].FSIntellectualDependencyLawBeauty == 1>> - <<if bimboScore($slaves[$i]) == 6>> - Society @@.green;is delighted@@ by $slaves[$i].slaveName's perfect bimbo appearance. - <<run FutureSocieties.ChangePorn("IntellectualDependency", 1)>> - <</if>> - <</if>> - <<if ($slaves[$i].intelligence+$slaves[$i].intelligenceImplant < -10)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's dimwitted mind; this supports the idea that slaves should be entirely dependent on their owner. - <<run FutureSocieties.ChangePorn("IntellectualDependency", 1)>> - <<elseif ["be your Head Girl", "be the Attendant", "be the Farmer", "be the Madam", "be the Matron", "be the Nurse", "be the Schoolteacher", "be the Stewardess", "guard you"].includes($slaves[$i].assignment)>> - Society understands the value of intelligence in $his appointed position and is willing to overlook it. - <<elseif ($slaves[$i].intelligence+$slaves[$i].intelligenceImplant > 10)>> - Society @@.red;disapproves@@ of $slaves[$i].slaveName's sharp mind; this holds back acceptance of the idea that slaves should be dumb and dependent. - <<run FutureSocieties.ChangePorn("IntellectualDependency", -1)>> - <</if>> - <<if ($slaves[$i].energy > 95)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's bottomless lust, showing the public one more way a slave may be reliant on $his owner. - <<run FutureSocieties.ChangePorn("IntellectualDependency", 1)>> - <<elseif ($slaves[$i].energy <= 60)>> - Society @@.red;disapproves@@ of $slaves[$i].slaveName's restrained libido; to the public, this gives $him too much freedom to focus on things other than sex. - <<run FutureSocieties.ChangePorn("IntellectualDependency", -1)>> - <</if>> - <<elseif $arcologies[0].FSSlaveProfessionalism != "unset">> - <<if $slaves[$i].intelligence+$slaves[$i].intelligenceImplant > 95>> - Society @@.green;strongly approves@@ of $slaves[$i].slaveName's brilliance; $his sharp wit is the foundation of slave perfectionism. - <<run FutureSocieties.ChangePorn("SlaveProfessionalism", 1)>> - <<elseif $slaves[$i].intelligenceImplant >= 30>> - Society @@.green;approves@@ of $slaves[$i].slaveName's advanced education; this advances ideas about crafting the perfect slave. - <<run FutureSocieties.ChangePorn("SlaveProfessionalism", 1)>> - <<elseif $slaves[$i].intelligenceImplant <= -15>> - Society @@.red;is appalled@@ by $slaves[$i].slaveName's twisted education; why someone would do this is beyond them. - <<run FutureSocieties.ChangePorn("SlaveProfessionalism", -3)>> - <<elseif $slaves[$i].intelligence < -10 && $slaves[$i].intelligenceImplant < 15>> - Society @@.red;frowns@@ upon keeping a slave as slow as $slaves[$i].slaveName; the lack of an attempt to correct this sets a bad example for other owners. - <<run FutureSocieties.ChangePorn("SlaveProfessionalism", -2)>> - <</if>> - <<if $slaves[$i].accent > 1 && canTalk($slaves[$i]) && ($slaves[$i].rules.speech != "restrictive" || ($slaves[$i].rules.speech == "restrictive" && $slaves[$i].devotion < 20 && $slaves[$i].trust >= -20))>> - Society @@.red;dislikes@@ $slaves[$i].slaveName's inability to properly speak $language or hold $his tongue; allowing such a flaw hinders the notion of professional slavery. - <<run FutureSocieties.ChangePorn("SlaveProfessionalism", -2)>> - <</if>> - <<if $slaves[$i].skill.entertainment + $slaves[$i].skill.whoring + $slaves[$i].skill.oral + $slaves[$i].skill.anal + $slaves[$i].skill.vaginal >= 400>> - Society @@.green;appreciates@@ a slave with skills of $slaves[$i].slaveName's caliber. - <<run FutureSocieties.ChangePorn("SlaveProfessionalism", 1)>> - <</if>> - <<if $slaves[$i].energy <= 40 && $slaves[$i].devotion > 50>> - Society @@.green;approves@@ of a $girl with a clear mind like $slaves[$i].slaveName; $he can pour all $his efforts into $his lover's pleasure without being lost in $his own. - <<run FutureSocieties.ChangePorn("SlaveProfessionalism", 1)>> - <</if>> - <</if>> - - <<if $arcologies[0].FSBodyPurist != "unset">> - <<if ($slaves[$i].boobsImplant == 0) && ($slaves[$i].buttImplant == 0) && ($slaves[$i].lipsImplant == 0) && ($slaves[$i].bellyImplant == -1)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's natural body; this supports the fashion for surgically untouched slaves. - <<run FutureSocieties.ChangePorn("BodyPurist", 1)>> - <<else>> - Society @@.red;disapproves@@ of $slaves[$i].slaveName's implants; this holds back acceptance of the idea that slaves should be all-natural. - <<run FutureSocieties.ChangePorn("BodyPurist", -1)>> - <</if>> - <<if ($slaves[$i].corsetPiercing == 0 && _modScore.piercing < 3 && _modScore.tat < 2)>> - Society @@.green;approves@@ of $his unmarked, unblemished skin, advancing the fashion for unspoiled slaves. - <<run FutureSocieties.ChangePorn("BodyPurist", 1)>> - <</if>> - <<if ($slaves[$i].earShape != "normal" && $slaves[$i].earShape != "damaged") || $slaves[$i].earT != "none">> - Society finds $his inhuman ears @@.red;appalling.@@ - <<run FutureSocieties.ChangePorn("BodyPurist", -1)>> - <</if>> - <<if $slaves[$i].horn != "none" || $slaves[$i].tail != "none">> - Society @@.red;is disgusted@@ by $his inhuman attributes. - <<run FutureSocieties.ChangePorn("BodyPurist", -1)>> - <</if>> - <<if $slaves[$i].faceImplant <= 5 && $slaves[$i].race == $slaves[$i].origRace>> - Society @@.green;approves@@ of $his natural, untouched appearance, advancing the fashion for unaltered slaves. - <<run FutureSocieties.ChangePorn("BodyPurist", 1)>> - <<else>> - Society @@.red;disapproves@@ of $slaves[$i].slaveName's surgical beautification; this holds back acceptance of the idea that a natural slave is a beautiful slave. - <<run FutureSocieties.ChangePorn("BodyPurist", -2)>> - <</if>> - <<if $slaves[$i].fuckdoll == 0>> - <<if $slaves[$i].vagina == 0 && $slaves[$i].anus == 0 && $slaves[$i].counter.vaginal == 0 && $slaves[$i].counter.anal == 0>> - Society @@.green;strongly approves@@ of $his intact holes, idolizing $his pristine body. - <<run FutureSocieties.ChangePorn("BodyPurist", 3)>> - <<elseif $slaves[$i].vagina == 0 && $slaves[$i].counter.vaginal == 0>> - Society @@.green;approves@@ of $his intact hymen, advancing ideals of pure, fresh slaves. - <<run FutureSocieties.ChangePorn("BodyPurist", 1)>> - <<elseif $slaves[$i].anus == 0 && $slaves[$i].counter.anal == 0>> - Society @@.green;approves@@ of $his intact anus, advancing ideals of pure, fresh slaves. - <<run FutureSocieties.ChangePorn("BodyPurist", 1)>> - <</if>> - <</if>> - - <<elseif $arcologies[0].FSTransformationFetishist != "unset">> - <<set _transformed = 0>> - <<if ($slaves[$i].boobsImplant > 0) && ($slaves[$i].buttImplant > 0) && ($slaves[$i].lipsImplant > 0)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's thoroughly modified body; this supports the fashion for surgically upgraded slaves. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <<set _transformed = 1>> - <</if>> - <<if ($slaves[$i].lipsImplant/$slaves[$i].lips >= .50) || ($slaves[$i].buttImplant/$slaves[$i].butt >= .50 && $slaves[$i].butt >= 6) || ($slaves[$i].buttImplant/$slaves[$i].butt >= .25 && $slaves[$i].butt >= 3) || ($slaves[$i].boobsImplant/$slaves[$i].boobs >= .75 && $slaves[$i].boobs >= 10000) || ($slaves[$i].boobsImplant/$slaves[$i].boobs >= .50 && $slaves[$i].boobs >= 2000) || ($slaves[$i].boobsImplant/$slaves[$i].boobs >= .25 && $slaves[$i].boobs >= 1000) || ($slaves[$i].boobsImplant/$slaves[$i].boobs >= .10 && $slaves[$i].boobs >= 400)>> - Society @@.green;approves@@ of $his obvious implants. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <<set _transformed = 1>> - <</if>> - <<if ($slaves[$i].bellyImplant >= 1500)>> - Society @@.green;mildly approves@@ of $slaves[$i].slaveName's belly bulging implant; this supports interest in more unusual implantations. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <<set _transformed = 1>> - <</if>> - <<if (isAmputee($slaves[$i])) || ($slaves[$i].waist < -95) || ($slaves[$i].teeth == "pointy") || ($slaves[$i].teeth == "fangs") || ($slaves[$i].teeth == "removable") || ($slaves[$i].hips == 3 && $slaves[$i].hipsImplant > 0)>> - Society @@.green;approves@@ of $his extreme surgeries; interest in $him stirs interest in transformations of all kinds. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <<set _transformed = 1>> - <</if>> - <<if $slaves[$i].faceImplant > 30 || $slaves[$i].race != $slaves[$i].origRace>> - Society @@.green;approves@@ of $his surgically improved appearance; this supports the fashion for surgical corrections. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <</if>> - <<if $slaves[$i].faceImplant > 95 && $slaves[$i].face > 40>> - Society @@.green;approves@@ of $his beautiful face, considering it's uncanny nature a boon rather than a fault; this supports the belief that there is no such thing as too much surgery. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <<set _transformed = 1>> - <</if>> - <<if hasAnyProstheticLimbs($slaves[$i]) || $slaves[$i].earT != "none" || $slaves[$i].horn != "none" || $slaves[$i].tail != "none">> - Society @@.green;strongly approves@@ of $his transhuman body. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <<set _transformed = 1>> - <</if>> - <<if ($slaves[$i].dick > 8)>> - Society @@.green;approves@@ of $his monolithic dick, since it's such an obvious transformation masterpiece. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <<set _transformed = 1>> - <</if>> - <<if ($slaves[$i].lips > 95)>> - Society @@.green;approves@@ of $his absurd facepussy as a transformation of $his mouth into nothing more than another fuckhole. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <<set _transformed = 1>> - <</if>> - <<if ($slaves[$i].nipples == "fuckable")>> - Society @@.green;approves@@ of $slaves[$i].slaveName's fuckable nipples; this supports interest in more unusual body modifications. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <<set _transformed = 1>> - <</if>> - <<if $slaves[$i].fuckdoll > 0>> - Society @@.green;approves@@ of your owning a Fuckdoll. - <<run FutureSocieties.ChangePorn("TransformationFetishist", 1)>> - <<set _transformed = 1>> - <</if>> - <<if _transformed == 0>> - Society @@.red;disapproves@@ of $slaves[$i].slaveName's lack of obvious transformations; $he does not advance the ideal of body modification. - <<run FutureSocieties.ChangePorn("TransformationFetishist", -1)>> - <</if>> - <</if>> - - <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> - <<if isSlim($slaves[$i])>> - Society @@.green;approves@@ of $slaves[$i].slaveName's graceful, girlish form; $he furthers the fashion for slaves like $him. - <<run FutureSocieties.ChangePorn("SlimnessEnthusiast", 1)>> - <</if>> - <<if ($slaves[$i].butt > 4) || ($slaves[$i].boobs > 800)>> - Society @@.red;disapproves@@ of $slaves[$i].slaveName's boorishly<<if ($slaves[$i].boobs > 800)>> large tits<<if ($slaves[$i].butt > 4)>> and ass<</if>><<else>> ass<</if>>; $he damages the fashion for slender slaves. - <<run FutureSocieties.ChangePorn("SlimnessEnthusiast", -1)>> - <</if>> - <<elseif $arcologies[0].FSAssetExpansionist != "unset">> - <<if ($slaves[$i].geneMods.NCS > 0)>> - Society @@.green;strongly disapproves @@ of $slaves[$i].slaveName who can't get bigger; $His shrinking body hurts the fashion for Asset expansion. - <<run FutureSocieties.ChangePorn("AssetExpansionist", -2)>> - <</if>> - <<if ($slaves[$i].boobs > 2000)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's huge tits; $his breasts further the fashion for bouncing boobs on slaves. - <<run FutureSocieties.ChangePorn("AssetExpansionist", 1)>> - <</if>> - <<if ($slaves[$i].butt > 7)>> - Society @@.green;approves@@ of $his massive ass; $his butt furthers the fashion for big behinds on slaves. - <<run FutureSocieties.ChangePorn("AssetExpansionist", 1)>> - <</if>> - <<if ($slaves[$i].dick > 8)>> - Society @@.green;approves@@ of $his massive member, which might be nonfunctional, but is a wonder of expansionism. - <<set _Dic = $slaves[$i].dick-8>> - <<run FutureSocieties.ChangePorn("AssetExpansionist", _Dic)>> - <<elseif ($slaves[$i].dick > 6)>> - Society @@.green;approves@@ of $his enormous penis; $his cock furthers the fashion for dangling dicks on slaves. - <<run FutureSocieties.ChangePorn("AssetExpansionist", 1)>> - <</if>> - <<if ($slaves[$i].balls > 6)>> - Society @@.green;approves@@ of $his swinging balls; $his nuts further the fashion for tremendous testicles on slaves. - <<run FutureSocieties.ChangePorn("AssetExpansionist", 1)>> - <</if>> - <<if ($slaves[$i].lips > 95)>> - Society @@.green;approves@@ of $his expanded lips. - <<run FutureSocieties.ChangePorn("AssetExpansionist", 1)>> - <</if>> - <</if>> - - <<if $arcologies[0].FSPastoralist != "unset">> - <<if ($slaves[$i].lactation > 0)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's milky udders; the sight of $his creamy milk encourages the public taste for dairy straight from the nipple. - <<run FutureSocieties.ChangePorn("Pastoralist", 1)>> - <</if>> - <<if ($slaves[$i].assignment == "get milked") && ($slaves[$i].balls > 0)>> - Society @@.green;approves@@ of how $slaves[$i].slaveName gets cockmilked; the sight of $his product encourages experimentation with cum-based concoctions. - <<run FutureSocieties.ChangePorn("Pastoralist", 1)>> - <</if>> - <</if>> - - <<if $arcologies[0].FSPhysicalIdealist != "unset">> - <<if $arcologies[0].FSPhysicalIdealistLaw == 1>> - <<if ($slaves[$i].muscles > 50)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's commitment to fitness; but thinks $his muscles are too big and vascular. - <<run FutureSocieties.ChangePorn("PhysicalIdealist", 1)>> - <<elseif ($slaves[$i].muscles > 20)>> - Society @@.green;strongly approves@@ of $slaves[$i].slaveName's fit body; physical enthusiasts see $him as the optimal example of feminine fitness. - <<run FutureSocieties.ChangePorn("PhysicalIdealist", 2)>> - <<elseif ($slaves[$i].muscles > 5)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's toned form; the public sees potential in those guns. - <<run FutureSocieties.ChangePorn("PhysicalIdealist", 1)>> - <</if>> - <<else>> - <<if ($slaves[$i].muscles > 95)>> - Society @@.green;strongly approves@@ of $slaves[$i].slaveName's glorious muscles; everyone wants to train a slave to look as swole as $him. - <<run FutureSocieties.ChangePorn("PhysicalIdealist", 2)>> - <<elseif ($slaves[$i].muscles > 30)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's fit body; physical enthusiasts see $him as on $his way to something great. - <<run FutureSocieties.ChangePorn("PhysicalIdealist", 1)>> - <<elseif ($slaves[$i].muscles > 5)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's toned form; the public sees potential in those guns. - <<run FutureSocieties.ChangePorn("PhysicalIdealist", 1)>> - <</if>> - <</if>> - <<if ($slaves[$i].height >= 185)>> - Society @@.green;approves@@ of how tall $he is; the sexual advantages of $his height are impressed on the public mind. - <<run FutureSocieties.ChangePorn("PhysicalIdealist", 1)>> - <</if>> - <<if ($slaves[$i].health.condition > 80)>> - Society @@.green;approves@@ of $his health; the expectation that slaves should be kept perfectly healthy grows. - <<run FutureSocieties.ChangePorn("PhysicalIdealist", 1)>> - <</if>> - <<elseif $arcologies[0].FSHedonisticDecadence != "unset">> - <<if ($slaves[$i].weight > 160)>> - Society @@.green;strongly approves@@ of $slaves[$i].slaveName's glorious rolls; everyone wants to own a pillowy slave like $him. - <<run FutureSocieties.ChangePorn("Hedonistic", 3)>> - <<elseif ($slaves[$i].weight > 95)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's fat body; it shows just how much luxurious your life must be to pamper a slave as much as $him. - <<run FutureSocieties.ChangePorn("Hedonistic", 2)>> - <<elseif ($slaves[$i].weight > 30)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's chubby form; the public enjoys the sight of a well rounded slave. - <<run FutureSocieties.ChangePorn("Hedonistic", 1)>> - <</if>> - <<if ($slaves[$i].muscles < -30)>> - Society @@.green;approves@@ of how soft $he is; the sexual advantages of being able to effortlessly overpower $him are not lost on them. - <<run FutureSocieties.ChangePorn("Hedonistic", 1)>> - <</if>> - <<if ($slaves[$i].fetishStrength > 95)>> - Society @@.green;approves@@ of $his intense fetish; the expectation that everyone's deepest desires should be fulfilled grows. - <<run FutureSocieties.ChangePorn("Hedonistic", 1)>> - <</if>> - <<if (_para > 0)>> - Society @@.green;is pleased@@ that $he is allowed to fully indulge $his paraphilia. - <<run FutureSocieties.ChangePorn("Hedonistic", 1)>> - <<elseif (_para < 0)>> - Society @@.red;frowns@@ upon $him not being allowed to indulge in $his paraphilia. - <<run FutureSocieties.ChangePorn("Hedonistic", -2)>> - <</if>> - <</if>> - - <<if $arcologies[0].FSChattelReligionist != "unset">> - <<if ["cruel retirement counter", "tight steel", "uncomfortable leather"].includes($slaves[$i].collar)>> - Society @@.green;approves@@ of $slaves[$i].slaveName's collar as an expression of the old ideal of mortification of the flesh, advancing the combination of religious originalism and modern slavery. - <<run FutureSocieties.ChangePorn("ChattelReligionist", 1)>> - <</if>> - <<if ["a burqa", "a chattel habit", "a fallen nuns habit", "a hijab and abaya", "a niqab and abaya", "a penitent nuns habit", "a succubus outfit"].includes($slaves[$i].clothes)>> - Society @@.green;approves@@ of $his religiously themed clothing, strengthening the connection between sexual servitude and faith. - <<run FutureSocieties.ChangePorn("ChattelReligionist", 1)>> - <<elseif ["a bunny outfit", "a hijab and blouse", "a huipil", "a kimono", "a military uniform", "a nice maid outfit", "a nice nurse outfit", "a skimpy loincloth", "a slutty qipao", "a toga", "body oil", "chains", "conservative clothing", "nice business attire", "no clothing", "shibari ropes", "uncomfortable straps"].includes($slaves[$i].clothes)>> - Society accepts $his spartan clothing, seeing it as permissible under the new religious mores. - <<elseif ($slaves[$i].fuckdoll == 0)>> - Society @@.red;disapproves@@ of $his unnecessarily gaudy attire; this slows acceptance of a link between faith and sexual servitude. - <<run FutureSocieties.ChangePorn("ChattelReligionist", -1)>> - <</if>> - <<if ($slaves[$i].devotion > 95)>> - Society @@.green;approves@@ of $his devotion to you as a companion to religious devotion, seeing both as the model for holy slaves. - <<run FutureSocieties.ChangePorn("ChattelReligionist", 1)>> - <</if>> - <<if ($slaves[$i].trust > 95)>> - Society @@.green;strongly approves@@ of $his faith in you as a companion to faith in God, seeing both as the model for righteous slaves of the future. - <<run FutureSocieties.ChangePorn("ChattelReligionist", 2)>> - <</if>> - <<if ($slaves[$i].behavioralFlaw == "devout")>> - Society does not disapprove of $his devout adherence to an old world faith, having confidence that you'll bring $him around, and looking forward to seeing $him converted into a holy sex object. - <<elseif ($slaves[$i].behavioralQuirk == "sinful")>> - Society @@.green;strongly approves@@ of $his eagerness to transgress against the old world religious mores $he once held dear. - <<run FutureSocieties.ChangePorn("ChattelReligionist", 2)>> - <</if>> - <<if $slaves[$i].shouldersTat == "sacrilege" && $slaves[$i].lipsTat == "sacrilege" && $slaves[$i].boobsTat == "sacrilege" && $slaves[$i].armsTat == "sacrilege" && $slaves[$i].backTat == "sacrilege" && $slaves[$i].stampTat == "sacrilege" && $slaves[$i].buttTat == "sacrilege" && $slaves[$i].vaginaTat == "sacrilege" && $slaves[$i].dickTat == "sacrilege" && $slaves[$i].anusTat == "sacrilege" && $slaves[$i].legsTat == "sacrilege" && $slaves[$i].fuckdoll == 0>> - Society @@.green;enjoys the sight@@ of the religious sacrilege scrawled across $his skin. - <<run FutureSocieties.ChangePorn("ChattelReligionist", 1)>> - <</if>> - <</if>> - -<</if>> /* closes FSAnnounced */ - -<<if $slaves[$i].fuckdoll == 0>> - <<if $slaves[$i].fetish != "mindbroken">> - <<if isShelterSlave($slaves[$i])>> - <<if ["serve in the club", "serve the public", "whore", "work in the brothel"].includes($slaves[$i].assignment)>> - <<if ($slaves[$i].trust > 20) && ($slaves[$i].health.condition > 40)>> - <<if $arcologies[0].FSPaternalist != "unset">> - Society @@.green;strongly approves@@ of how you've brought a shelter $girl health and happiness. - <<run FutureSocieties.ChangePorn("Paternalist", 2)>> - <<switch $slaves[$i].assignment>> - <<case "work in the brothel">><<run getSlaveStatisticData($slaves[$i], $facility.brothel).rep += 2*$FSSingleSlaveRep*($arcologies[0].FSPaternalist/$FSLockinLevel)>> - <</switch>> - <<elseif $arcologies[0].FSDegradationist == "unset">> - The public knows $he's a shelter $girl you took in, and is @@.green;touched@@ that $he now seems happy and healthy. - <<run repX(10, "futureSocieties", $slaves[$i])>> - <<switch $slaves[$i].assignment>> - <<case "work in the brothel">><<run getSlaveStatisticData($slaves[$i], $facility.brothel).rep += 10>> - <</switch>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> -<</if>> +<<includeDOM App.SlaveAssignment.saSocialEffects($slaves[$i], _para)>> <<if $slaves[$i].fuckdoll == 0>> <<if (!jQuery.isEmptyObject($slaves[$i].brand))>> -- GitLab