diff --git a/src/endWeek/saRelationships.js b/src/endWeek/saRelationships.js index 13dd01003d2bc17640935d0d6e0d69601c8f85f1..e98d4a5534c4a62924e03c7e560f4f9315966bc9 100644 --- a/src/endWeek/saRelationships.js +++ b/src/endWeek/saRelationships.js @@ -390,251 +390,172 @@ App.SlaveAssignment.relationships = (function() { slave.trust--; } } - } else if (slave.relationship === -2 || slave.relationship === -3) { - if (areRelated(slave, PC)) { - const PCrelative = relativeTerm(slave, PC); - if (slave.fetish !== "mindbroken") { - r.push(`${He}`); - if (slave.sexualQuirk === "perverted") { - r.push(`is such a pervert that ${he} <span class="devotion inc">enjoys</span> carrying on an incestuous relationship with ${his} own ${PCrelative}.`); - slave.devotion += 1; - } else if (slave.devotion > 95) { - r.push(`is so inured to the perversities of slavery that ${he} <span class="devotion inc">enjoys</span> carrying on an incestuous relationship with ${his} own ${PCrelative}.`); - slave.devotion += 1; - } else if (slave.behavioralQuirk === "sinful") { - r.push(`is torn between sinful delight and deep disgust that ${he}'s carrying on an incestuous relationship with ${his} own ${PCrelative}.`); - } else if (slave.devotion > 75) { - r.push(`is so devoted to you that ${he} accepts carrying on an incestuous relationship with ${his} own ${PCrelative}.`); - } else if (slave.devotion > 50) { - r.push(`is somewhat <span class="devotion dec">disturbed</span> that ${he}'s carrying on an incestuous relationship with ${his} own ${PCrelative}.`); - slave.devotion -= 2; - } else if (slave.devotion > 20) { - r.push(`is <span class="devotion dec">disturbed</span> and <span class="trust dec">scared</span> that ${he}'s carrying on an incestuous relationship with ${his} own ${PCrelative}.`); - slave.devotion -= 2; - slave.trust -= 2; - } else { - r.push(`is <span class="devotion dec">revolted</span> and <span class="trust dec">scared</span> that ${he}'s carrying on an incestuous relationship with ${his} own ${PCrelative}.`); - slave.devotion -= 4; - slave.trust -= 4; - } - if (slave.pregKnown === 1 && slave.pregSource === -1) { - if (slave.sexualQuirk === "perverted") { - r.push(`${He}'s even <span class="devotion inc">aroused</span> by the constant awareness that ${his} ${PCrelative} is the parent of the child${slave.pregType > 1 ? "ren" : ""} ${he}'s carrying.`); - slave.devotion += 1; - } else if (slave.behavioralQuirk === "sinful") { - r.push(`${His} feelings about carrying ${his} ${PCrelative}'s child${slave.pregType > 1 ? "ren" : ""} are <span class="devotion inc">secretly less mixed,</span> though.`); - slave.devotion += 1; - } else if (slave.devotion > 95) { - r.push(`${He} occasionally remembers that ${he}'s carrying ${his} ${PCrelative}'s child${slave.pregType > 1 ? "ren" : ""}, but does ${his} best to accept it by not thinking about it.`); - } else if (slave.devotion > 50) { - r.push(`${He}'s <span class="devotion dec">disgusted</span> that the`); - if (slave.pregType > 1) { - r.push(`babies ${he}'s carrying are`); - } else { - r.push(`baby ${he}'s carrying is`); - } - r.push(`${his} ${PCrelative}'s, though ${he} tries ${his} best not to think about it.`); - slave.devotion -= 1; - } else if (slave.devotion > 20) { - r.push(`${He}'s so <span class="devotion dec">disgusted</span> that the`); - if (slave.pregType > 1) { - r.push(`babies ${he}'s carrying are`); - } else { - r.push(`baby ${he}'s carrying is`); - } - r.push(`${his} ${PCrelative}'s that ${he} often wakes up crying about it.`); - slave.devotion -= 2; + } else if (slave.relationship === -2) { + incestReactions(slave, PC); + if (slave.devotion + slave.trust < 150) { + if (random(1, 100) > 50) { + r.push(`${He} is no longer as devoted to you as ${he} once was, and has <span class="relationship dec">begun to look elsewhere for emotional support.</span>`); + slave.relationship = 0; + } else if (slave.trust < 75 && random(1, 100) > 50) { + r.push(`${He} is no longer as trusting of you as ${he} once was, and has <span class="relationship dec">begun to look elsewhere for emotional support.</span>`); + slave.relationship = 0; + } + } + switch (slave.assignment) { + case Job.HOUSE: + case Job.CONCUBINE: + case Job.FUCKTOY: + case Job.MASTERSUITE: + case Job.QUARTER: + r.push(`${He} is <span class="devotion inc">happy</span> to be allowed to serve you personally, since it's as close a relationship to you as ${he} can aspire to. In addition, ${his} deep love for you produces a slow but steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust.</span>`); + slave.devotion++; + slave.trust++; + break; + default: + r.push(`${His} deep love for you produces a slow but steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust.</span>`); + slave.devotion++; + slave.trust++; + } + } else if (slave.relationship === -3) { + incestReactions(slave, PC); + if (slave.fetish === "mindbroken") { + switch (slave.assignment) { + case Job.HOUSE: + case Job.CONCUBINE: + case Job.FUCKTOY: + case Job.MASTERSUITE: + case Job.QUARTER: + r.push(`${He} lives a nice life by your side, despite ${his} inability to realize it. Since ${he} is so malleable and willing, you rarely have reason to punish ${him} anymore.`); + if (slave.kindness) { + slave.kindness += 2; } else { - r.push(`${He}'s <span class="devotion dec">passionately hateful</span> of you for making ${him} carry an incestuous pregnancy.`); - slave.devotion -= 4; + slave.kindness = 2; } - } + break; + case Job.WHORE: + case Job.BROTHEL: + case Job.PUBLIC: + case Job.CLUB: + case Job.GLORYHOLE: + case Job.ARCADE: + r.push(`You, others, it doesn't matter. They are all the same to your mindbroken ${wife}. The public, however, is less forgiving of you ordering your slave ${wife} to fuck random citizens, <span class="reputation dec">seriously damaging your reputation.</span>`); + repX(-100, "PCRelationships", slave); + break; + default: + r.push(`Being your ${wife} is wasted on ${his} empty mind. If it weren't for the ring`); + if (hasAnyArms(slave)) { + r.push(`around ${his} finger,`); + } else { + r.push(`hanging from ${his} neck,`); + } + r.push(`nobody would ever realize ${he} was so close to you.`); } - if (V.arcologies[0].FSEgyptianRevivalist !== "unset") { - r.push(`Society <span class="reputation inc">strongly approves</span> of your incestuous relationship, which advances the Egyptian revivalist ideal of slave incest.`); - repX((2 * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel)), "PCRelationships", slave); - V.arcologies[0].FSEgyptianRevivalist += (0.1 * V.FSSingleSlaveRep); - if (slave.bellyPreg >= 1500 && slave.pregSource === -1) { - r.push(`<span class="reputation inc">The effect is greatly enhanced</span> by ${slave.slaveName}'s pureblooded pregnancy.`); - repX((V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel)), "PCRelationships", slave); - V.arcologies[0].FSEgyptianRevivalist += (0.05 * V.FSSingleSlaveRep * V.pornFameBonus); - } - } else if (V.arcologies[0].FSEgyptianRevivalistIncestPolicy === 1) { - r.push(`Society <span class="reputation inc">enjoys</span> your incestuous relationship since incest is currently trendy.`); - repX((1.5 * V.FSSingleSlaveRep), "PCRelationships", slave); - if (slave.bellyPreg >= 1500 && slave.pregSource === -1) { - r.push(`<span class="reputation inc">The effect is enhanced</span> by ${slave.slaveName}'s pureblooded pregnancy.`); - repX(V.FSSingleSlaveRep, "PCRelationships", slave); - } + } else if (slave.devotion + slave.trust >= 175) { + switch (slave.assignment) { + case Job.HOUSE: + case Job.CONCUBINE: + case Job.FUCKTOY: + case Job.MASTERSUITE: + case Job.QUARTER: + r.push(`${He} is <span class="devotion inc">happy</span> to be allowed to live ${his} life close to you, since ${he}'s your ${wife}. In addition, ${his} deep reliance on ${his} formal relationship to you produces a steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust.</span>`); + slave.devotion += 2; + break; + case Job.WHORE: + case Job.BROTHEL: + case Job.PUBLIC: + case Job.CLUB: + case Job.GLORYHOLE: + case Job.ARCADE: + r.push(`${His} reliance on ${his} formal relationship to you produces a slight increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust,</span> though this is reduced by being on a public sexual assignment rather than being kept for you alone. The public is less forgiving of you ordering your slave ${wife} to fuck random citizens, <span class="reputation dec">seriously damaging your reputation.</span>`); + slave.devotion++; + slave.trust++; + repX(-100, "PCRelationships", slave); + break; + default: + r.push(`${His} deep reliance on ${his} formal relationship to you produces a steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust.</span>`); + slave.devotion++; + slave.trust++; } - } - if (slave.relationship === -3) { - if (slave.fetish === "mindbroken") { - switch (slave.assignment) { - case Job.HOUSE: - case Job.CONCUBINE: - case Job.FUCKTOY: - case Job.MASTERSUITE: - case Job.QUARTER: - r.push(`${He} lives a nice life by your side, despite ${his} inability to realize it. Since ${he} is so malleable and willing, you rarely have reason to punish ${him} anymore.`); - if (slave.kindness) { - slave.kindness += 2; - } else { - slave.kindness = 2; - } - break; - case Job.WHORE: - case Job.BROTHEL: - case Job.PUBLIC: - case Job.CLUB: - case Job.GLORYHOLE: - case Job.ARCADE: - r.push(`You, others, it doesn't matter. They are all the same to your mindbroken ${wife}. The public, however, is less forgiving of you ordering your slave ${wife} to fuck random citizens, <span class="reputation dec">seriously damaging your reputation.</span>`); - repX(-100, "PCRelationships", slave); - break; - default: - r.push(`Being your ${wife} is wasted on ${his} empty mind. If it weren't for the ring`); - if (hasAnyArms(slave)) { - r.push(`around ${his} finger,`); - } else { - r.push(`hanging from ${his} neck,`); - } - r.push(`nobody would ever realize ${he} was so close to you.`); - } - } else if (slave.devotion + slave.trust >= 175) { - switch (slave.assignment) { - case Job.HOUSE: - case Job.CONCUBINE: - case Job.FUCKTOY: - case Job.MASTERSUITE: - case Job.QUARTER: - r.push(`${He} is <span class="devotion inc">happy</span> to be allowed to live ${his} life close to you, since ${he}'s your ${wife}. In addition, ${his} deep reliance on ${his} formal relationship to you produces a steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust.</span>`); - slave.devotion += 2; - break; - case Job.WHORE: - case Job.BROTHEL: - case Job.PUBLIC: - case Job.CLUB: - case Job.GLORYHOLE: - case Job.ARCADE: - r.push(`${His} reliance on ${his} formal relationship to you produces a slight increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust,</span> though this is reduced by being on a public sexual assignment rather than being kept for you alone. The public is less forgiving of you ordering your slave ${wife} to fuck random citizens, <span class="reputation dec">seriously damaging your reputation.</span>`); - slave.devotion++; - slave.trust++; - repX(-100, "PCRelationships", slave); - break; - default: - r.push(`${His} deep reliance on ${his} formal relationship to you produces a steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust.</span>`); - slave.devotion++; - slave.trust++; - } - } else if (slave.devotion < -20 && slave.trust > 0) { - switch (slave.assignment) { - case Job.HOUSE: - case Job.CONCUBINE: - case Job.FUCKTOY: - case Job.MASTERSUITE: - case Job.QUARTER: - r.push(`${He} <span class="defiant inc">takes advantage</span> of your kindness, since ${he} is allowed to live a pampered life just for letting you use ${his} body. ${His} insolence allows ${him} to retain, if not strengthen, <span class="devotion dec">${his} hatred of you.</span>`); - slave.devotion -= 7; - slave.trust += 5; - break; - case Job.WHORE: - case Job.BROTHEL: - case Job.PUBLIC: - case Job.CLUB: - case Job.GLORYHOLE: - case Job.ARCADE: - r.push(`Not being a pampered fucktoy to you <span class="trust dec">wounds ${his} expectations as your ${wife},</span> but gives ${him} the space needed to <span class="devotion inc">begin warming up to you.</span> The public, disregarding ${his} opinions, is less forgiving of you ordering your slave ${wife} to fuck random citizens, <span class="reputation dec">seriously damaging your reputation.</span>`); - slave.devotion++; - slave.trust--; - repX(-100, "PCRelationships", slave); - break; - default: - r.push(`${He} <span class="defiant inc">takes advantage</span> of your kindness, since ${he} expects you'd never truly harm your ${wife}. ${His} insolence allows ${him} to remain, if not strengthen, <span class="devotion dec">${his} hatred of you.</span>`); - slave.devotion -= 5; - slave.trust += 3; - } - } else if (slave.devotion < -20) { - switch (slave.assignment) { - case Job.HOUSE: - case Job.CONCUBINE: - case Job.FUCKTOY: - case Job.MASTERSUITE: - case Job.QUARTER: - r.push(`${He} is <span class="trust dec">thoroughly terrified</span> by having to remain in a formal relationship with the ${playerPronouns.woman} ${he} hates. Being so close to you forces ${him} to slowly <span class="devotion inc">accept</span> ${his} new role as your ${wife}.`); - slave.devotion += 1; - slave.trust -= 3; - break; - case Job.WHORE: - case Job.BROTHEL: - case Job.PUBLIC: - case Job.CLUB: - case Job.GLORYHOLE: - case Job.ARCADE: - r.push(`Being forced into public service only reinforces ${his} <span class="trust dec">fears</span> and <span class="devotion dec">perceptions</span> of you. If there was any chance of ${him} thinking you cared, <span class="devotion dec">it's gone now.</span> The public, disregarding ${his} opinions, is less forgiving of you ordering your slave ${wife} to fuck random citizens, <span class="reputation dec">seriously damaging your reputation.</span>`); - slave.devotion -= 10; - slave.trust -= 10; - repX(-100, "PCRelationships", slave); - break; - default: - r.push(`${He} is <span class="trust dec">thoroughly terrified</span> by having to remain in a formal relationship with the ${playerPronouns.woman} ${he} hates. Without you nearby to distract ${him}, ${he} dwells on ${his} situation as ${his} <span class="devotion dec">hate for you grows.</span>`); - slave.devotion -= 3; - slave.trust -= 5; - } - } else { - switch (slave.assignment) { - case Job.HOUSE: - case Job.CONCUBINE: - case Job.FUCKTOY: - case Job.MASTERSUITE: - case Job.QUARTER: - r.push(`${He} is <span class="devotion inc">happy</span> to be allowed to live a rather nice life close to you, since ${he}'s your ${wife}. In addition, ${his} formal relationship to you produces a steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust.</span>`); - slave.devotion += 2; - slave.trust += 2; - break; - case Job.WHORE: - case Job.BROTHEL: - case Job.PUBLIC: - case Job.CLUB: - case Job.GLORYHOLE: - case Job.ARCADE: - r.push(`${His} formal relationship to you produces a steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust,</span> though this is reduced by being on a public sexual assignment rather than being kept for you alone, not that ${he} minds; just as you ordered ${him} to marry you, so may you order ${him} to fuck others. The public, however, is less forgiving of you ordering your slave ${wife} to fuck random citizens, <span class="reputation dec">seriously damaging your reputation.</span>`); - slave.devotion++; - slave.trust++; - repX(-100, "PCRelationships", slave); - break; - default: - r.push(`${His} formal relationship to you produces a steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust</span> as ${he} gradually grows closer to ${his} spouse.`); - slave.devotion++; - slave.trust++; - } + } else if (slave.devotion < -20 && slave.trust > 0) { + switch (slave.assignment) { + case Job.HOUSE: + case Job.CONCUBINE: + case Job.FUCKTOY: + case Job.MASTERSUITE: + case Job.QUARTER: + r.push(`${He} <span class="defiant inc">takes advantage</span> of your kindness, since ${he} is allowed to live a pampered life just for letting you use ${his} body. ${His} insolence allows ${him} to retain, if not strengthen, <span class="devotion dec">${his} hatred of you.</span>`); + slave.devotion -= 7; + slave.trust += 5; + break; + case Job.WHORE: + case Job.BROTHEL: + case Job.PUBLIC: + case Job.CLUB: + case Job.GLORYHOLE: + case Job.ARCADE: + r.push(`Not being a pampered fucktoy to you <span class="trust dec">wounds ${his} expectations as your ${wife},</span> but gives ${him} the space needed to <span class="devotion inc">begin warming up to you.</span> The public, disregarding ${his} opinions, is less forgiving of you ordering your slave ${wife} to fuck random citizens, <span class="reputation dec">seriously damaging your reputation.</span>`); + slave.devotion++; + slave.trust--; + repX(-100, "PCRelationships", slave); + break; + default: + r.push(`${He} <span class="defiant inc">takes advantage</span> of your kindness, since ${he} expects you'd never truly harm your ${wife}. ${His} insolence allows ${him} to remain, if not strengthen, <span class="devotion dec">${his} hatred of you.</span>`); + slave.devotion -= 5; + slave.trust += 3; } - } else { - if (slave.devotion + slave.trust < 150) { - if (random(1, 100) > 50) { - r.push(`${He} is no longer as devoted to you as ${he} once was, and has <span class="relationship dec">begun to look elsewhere for emotional support.</span>`); - slave.relationship = 0; - } else if (slave.trust < 75 && random(1, 100) > 50) { - r.push(`${He} is no longer as trusting of you as ${he} once was, and has <span class="relationship dec">begun to look elsewhere for emotional support.</span>`); - slave.relationship = 0; - } + } else if (slave.devotion < -20) { + switch (slave.assignment) { + case Job.HOUSE: + case Job.CONCUBINE: + case Job.FUCKTOY: + case Job.MASTERSUITE: + case Job.QUARTER: + r.push(`${He} is <span class="trust dec">thoroughly terrified</span> by having to remain in a formal relationship with the ${playerPronouns.woman} ${he} hates. Being so close to you forces ${him} to slowly <span class="devotion inc">accept</span> ${his} new role as your ${wife}.`); + slave.devotion += 1; + slave.trust -= 3; + break; + case Job.WHORE: + case Job.BROTHEL: + case Job.PUBLIC: + case Job.CLUB: + case Job.GLORYHOLE: + case Job.ARCADE: + r.push(`Being forced into public service only reinforces ${his} <span class="trust dec">fears</span> and <span class="devotion dec">perceptions</span> of you. If there was any chance of ${him} thinking you cared, <span class="devotion dec">it's gone now.</span> The public, disregarding ${his} opinions, is less forgiving of you ordering your slave ${wife} to fuck random citizens, <span class="reputation dec">seriously damaging your reputation.</span>`); + slave.devotion -= 10; + slave.trust -= 10; + repX(-100, "PCRelationships", slave); + break; + default: + r.push(`${He} is <span class="trust dec">thoroughly terrified</span> by having to remain in a formal relationship with the ${playerPronouns.woman} ${he} hates. Without you nearby to distract ${him}, ${he} dwells on ${his} situation as ${his} <span class="devotion dec">hate for you grows.</span>`); + slave.devotion -= 3; + slave.trust -= 5; } - if (slave.relationship === -2) { - switch (slave.assignment) { - case Job.HOUSE: - case Job.CONCUBINE: - case Job.FUCKTOY: - case Job.MASTERSUITE: - case Job.QUARTER: - r.push(`${He} is <span class="devotion inc">happy</span> to be allowed to serve you personally, since it's as close a relationship to you as ${he} can aspire to. In addition, ${his} deep love for you produces a slow but steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust.</span>`); - slave.devotion++; - slave.trust++; - break; - default: - r.push(`${His} deep love for you produces a slow but steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust.</span>`); - slave.devotion++; - slave.trust++; - } + } else { + switch (slave.assignment) { + case Job.HOUSE: + case Job.CONCUBINE: + case Job.FUCKTOY: + case Job.MASTERSUITE: + case Job.QUARTER: + r.push(`${He} is <span class="devotion inc">happy</span> to be allowed to live a rather nice life close to you, since ${he}'s your ${wife}. In addition, ${his} formal relationship to you produces a steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust.</span>`); + slave.devotion += 2; + slave.trust += 2; + break; + case Job.WHORE: + case Job.BROTHEL: + case Job.PUBLIC: + case Job.CLUB: + case Job.GLORYHOLE: + case Job.ARCADE: + r.push(`${His} formal relationship to you produces a steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust,</span> though this is reduced by being on a public sexual assignment rather than being kept for you alone, not that ${he} minds; just as you ordered ${him} to marry you, so may you order ${him} to fuck others. The public, however, is less forgiving of you ordering your slave ${wife} to fuck random citizens, <span class="reputation dec">seriously damaging your reputation.</span>`); + slave.devotion++; + slave.trust++; + repX(-100, "PCRelationships", slave); + break; + default: + r.push(`${His} formal relationship to you produces a steady increase of both <span class="devotion inc">devotion</span> and <span class="trust inc">trust</span> as ${he} gradually grows closer to ${his} spouse.`); + slave.devotion++; + slave.trust++; } } } else if (slave.rules.relationship === "restrictive" && slave.relationship !== 5) { @@ -946,102 +867,114 @@ App.SlaveAssignment.relationships = (function() { } } - /** LONG TERM RELATIONSHIP EFFECTS + /** * @param {App.Entity.SlaveState} slave * */ - function consumateRelationship(slave) { - let lover = getSlave(slave.relationshipTarget); - ({ - he2, him2, his2, hers2, himself2, girl2, He2, His2, loli2, wife2 - } = getPronouns(lover).appendSuffix("2")); - const relationType = relativeTerm(slave, lover); + function incestReactions(slave, relative) { + if (areRelated(slave, relative)) { + const relationType = relativeTerm(slave, relative); + const repType = relative.ID === -1 ? "PCRelationships" : "SlaveRelationships"; - if (areRelated(slave, lover)) { - r.push(`${slave.slaveName}`); - if (slave.origin === "$He offered $himself to you for enslavement hoping you would preserve $his incestuous relationship with $his sibling." || slave.origin === "$He offered to become your slave to protect $his incestuous relationship.") { - r.push(`is <span class="devotion inc">grateful</span> and <span class="trust inc">trusting</span> towards you for protecting ${him} in ${his} long-standing incestuous relationship.`); - slave.devotion += 2; - slave.trust += 2; - } else if (slave.sexualQuirk === "perverted") { - r.push(`is such a pervert that ${he} <span class="devotion inc">enjoys</span> carrying on an incestuous relationship with ${his} own ${relationType}.`); - slave.devotion += 1; - } else if (slave.devotion > 95) { - r.push(`is so inured to the perversities of slavery that ${he} <span class="devotion inc">enjoys</span> carrying on an incestuous relationship with ${his} own ${relationType}.`); - slave.devotion += 1; - } else if (slave.behavioralQuirk === "sinful") { - r.push(`is torn between sinful delight and deep disgust that ${he}'s carrying on an incestuous relationship with ${his} own ${relationType}.`); - } else if (slave.devotion > 75) { - r.push(`is so devoted to you that ${he} accepts carrying on an incestuous relationship with ${his} own ${relationType}.`); - } else if (slave.devotion > 50) { - r.push(`is somewhat <span class="devotion dec">disturbed</span> that ${he}'s carrying on an incestuous relationship with ${his} own ${relationType}.`); - slave.devotion -= 2; - } else if (slave.devotion > 20) { - r.push(`is <span class="devotion dec">disturbed</span> and <span class="trust dec">scared</span> that ${he}'s carrying on an incestuous relationship with ${his} own ${relationType}.`); - slave.devotion -= 2; - slave.trust -= 2; - } else { - r.push(`is <span class="devotion dec">revolted</span> and <span class="trust dec">scared</span> that ${he}'s carrying on an incestuous relationship with ${his} own ${relationType}.`); - slave.devotion -= 4; - slave.trust -= 4; - } - if (slave.pregKnown === 1 && slave.pregSource === lover.ID) { - if (slave.origin === "$He offered $himself to you for enslavement hoping you would preserve $his incestuous relationship with $his sibling." || slave.origin === "$He offered to become your slave to protect $his incestuous relationship.") { - r.push(`${He}'s <span class="devotion inc">overjoyed</span> to be carrying ${his} ${relationType}'s child`); - if (slave.pregType > 1) { - r.push(`ren`); - } - r.push(`.`); + if (slave.fetish !== "mindbroken") { + if (relative.ID === -1) { + r.push(`${He}`); + } else { + r.push(`${slave.slaveName}`); + } + if ((slave.origin === "$He offered $himself to you for enslavement hoping you would preserve $his incestuous relationship with $his sibling." || slave.origin === "$He offered to become your slave to protect $his incestuous relationship.") && relative.ID !== -1) { + r.push(`is <span class="devotion inc">grateful</span> and <span class="trust inc">trusting</span> towards you for protecting ${him} in ${his} long-standing incestuous relationship.`); slave.devotion += 2; + slave.trust += 2; } else if (slave.sexualQuirk === "perverted") { - r.push(`${He}'s even <span class="devotion inc">aroused</span> by the constant awareness that ${his} ${relationType} is the parent of the child${slave.pregType > 1 ? "ren" : ""} ${he}'s carrying.`); - slave.devotion += 1; - } else if (slave.behavioralQuirk === "sinful") { - r.push(`${His} feelings about carrying ${his} ${relationType}'s child${slave.pregType > 1 ? "ren" : ""} are <span class="devotion inc">secretly less mixed,</span> though.`); + r.push(`is such a pervert that ${he} <span class="devotion inc">enjoys</span> carrying on an incestuous relationship with ${his} own ${relationType}.`); slave.devotion += 1; } else if (slave.devotion > 95) { - r.push(`${He} occasionally remembers that ${he}'s carrying ${his} ${relationType}'s child${slave.pregType > 1 ? "ren" : ""}, but does ${his} best to accept it by not thinking about it.`); + r.push(`is so inured to the perversities of slavery that ${he} <span class="devotion inc">enjoys</span> carrying on an incestuous relationship with ${his} own ${relationType}.`); + slave.devotion += 1; + } else if (slave.behavioralQuirk === "sinful") { + r.push(`is torn between sinful delight and deep disgust that ${he}'s carrying on an incestuous relationship with ${his} own ${relationType}.`); + } else if (slave.devotion > 75) { + r.push(`is so devoted to you that ${he} accepts carrying on an incestuous relationship with ${his} own ${relationType}.`); } else if (slave.devotion > 50) { - r.push(`${He}'s <span class="devotion dec">disgusted</span> that the`); - if (slave.pregType > 1) { - r.push(`babies ${he}'s carrying are`); - } else { - r.push(`baby ${he}'s carrying is`); - } - r.push(`${his} ${relationType}'s, though ${he} tries ${his} best not to think about it.`); - slave.devotion -= 1; + r.push(`is somewhat <span class="devotion dec">disturbed</span> that ${he}'s carrying on an incestuous relationship with ${his} own ${relationType}.`); + slave.devotion -= 2; } else if (slave.devotion > 20) { - r.push(`${He}'s so <span class="devotion dec">disgusted</span> that the`); - if (slave.pregType > 1) { - r.push(`babies ${he}'s carrying are`); - } else { - r.push(`baby ${he}'s carrying is`); - } - r.push(`${his} ${relationType}'s that ${he} often wakes up crying about it.`); + r.push(`is <span class="devotion dec">disturbed</span> and <span class="trust dec">scared</span> that ${he}'s carrying on an incestuous relationship with ${his} own ${relationType}.`); slave.devotion -= 2; + slave.trust -= 2; } else { - r.push(`${He}'s <span class="devotion dec">passionately hateful</span> of you for making ${him} carry an incestuous pregnancy.`); + r.push(`is <span class="devotion dec">revolted</span> and <span class="trust dec">scared</span> that ${he}'s carrying on an incestuous relationship with ${his} own ${relationType}.`); slave.devotion -= 4; + slave.trust -= 4; + } + if (slave.pregKnown === 1 && slave.pregSource === relative.ID) { + if ((slave.origin === "$He offered $himself to you for enslavement hoping you would preserve $his incestuous relationship with $his sibling." || slave.origin === "$He offered to become your slave to protect $his incestuous relationship.") && relative.ID !== -1) { + r.push(`${He}'s <span class="devotion inc">overjoyed</span> to be carrying ${his} ${relationType}'s child${slave.pregType > 1 ? "ren." : "."}`); + slave.devotion += 2; + } else if (slave.sexualQuirk === "perverted") { + r.push(`${He}'s even <span class="devotion inc">aroused</span> by the constant awareness that ${his} ${relationType} is the parent of the child${slave.pregType > 1 ? "ren" : ""} ${he}'s carrying.`); + slave.devotion += 1; + } else if (slave.behavioralQuirk === "sinful") { + r.push(`${His} feelings about carrying ${his} ${relationType}'s child${slave.pregType > 1 ? "ren" : ""} are <span class="devotion inc">secretly less mixed,</span> though.`); + slave.devotion += 1; + } else if (slave.devotion > 95) { + r.push(`${He} occasionally remembers that ${he}'s carrying ${his} ${relationType}'s child${slave.pregType > 1 ? "ren" : ""}, but does ${his} best to accept it by not thinking about it.`); + } else if (slave.devotion > 50) { + r.push(`${He}'s <span class="devotion dec">disgusted</span> that the`); + if (slave.pregType > 1) { + r.push(`babies ${he}'s carrying are`); + } else { + r.push(`baby ${he}'s carrying is`); + } + r.push(`${his} ${relationType}'s, though ${he} tries ${his} best not to think about it.`); + slave.devotion -= 1; + } else if (slave.devotion > 20) { + r.push(`${He}'s so <span class="devotion dec">disgusted</span> that the`); + if (slave.pregType > 1) { + r.push(`babies ${he}'s carrying are`); + } else { + r.push(`baby ${he}'s carrying is`); + } + r.push(`${his} ${relationType}'s that ${he} often wakes up crying about it.`); + slave.devotion -= 2; + } else { + r.push(`${He}'s <span class="devotion dec">passionately hateful</span> of you for making ${him} carry an incestuous pregnancy.`); + slave.devotion -= 4; + } } } if (V.arcologies[0].FSEgyptianRevivalist !== "unset") { - r.push(`Society <span class="reputation inc">strongly approves</span> of their incestuous relationship, which advances the Egyptian revivalist ideal of slave incest.`); - repX((2 * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel)), "SlaveRelationships", slave); + r.push(`Society <span class="reputation inc">strongly approves</span> of your incestuous relationship, which advances the Egyptian revivalist ideal of slave incest.`); + repX((2 * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel)), repType, slave); V.arcologies[0].FSEgyptianRevivalist += (0.1 * V.FSSingleSlaveRep); - if (slave.bellyPreg >= 1500 && slave.pregSource === lover.ID) { + if (slave.bellyPreg >= 1500 && slave.pregSource === relative.ID) { r.push(`<span class="reputation inc">The effect is greatly enhanced</span> by ${slave.slaveName}'s pureblooded pregnancy.`); - repX((V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel)), "SlaveRelationships", slave); + repX((V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel)), repType, slave); V.arcologies[0].FSEgyptianRevivalist += (0.05 * V.FSSingleSlaveRep * V.pornFameBonus); } } else if (V.arcologies[0].FSEgyptianRevivalistIncestPolicy === 1) { - r.push(`Society <span class="reputation inc">enjoys</span> their incestuous relationship since incest is currently trendy.`); - repX((1.5 * V.FSSingleSlaveRep), "PCRelationships", slave); - if (slave.bellyPreg >= 1500 && slave.pregSource === lover.ID) { + r.push(`Society <span class="reputation inc">enjoys</span> your incestuous relationship since incest is currently trendy.`); + repX((1.5 * V.FSSingleSlaveRep), repType, slave); + if (slave.bellyPreg >= 1500 && slave.pregSource === relative.ID) { r.push(`<span class="reputation inc">The effect is enhanced</span> by ${slave.slaveName}'s pureblooded pregnancy.`); - repX(V.FSSingleSlaveRep, "SlaveRelationships", slave); + repX(V.FSSingleSlaveRep, repType, slave); } } } + } + + /** LONG TERM RELATIONSHIP EFFECTS + * @param {App.Entity.SlaveState} slave + * + */ + function consumateRelationship(slave) { + let lover = getSlave(slave.relationshipTarget); + ({ + he2, him2, his2, hers2, himself2, girl2, He2, His2, loli2, wife2 + } = getPronouns(lover).appendSuffix("2")); + + incestReactions(slave, lover); if (App.Utils.sexAllowed(slave, lover)) { if (slave.sexualQuirk === "size queen" && canPenetrate(lover)) { if (lover.dick > 5) {