diff --git a/src/endWeek/saRelationships.js b/src/endWeek/saRelationships.js new file mode 100644 index 0000000000000000000000000000000000000000..e98d4a5534c4a62924e03c7e560f4f9315966bc9 --- /dev/null +++ b/src/endWeek/saRelationships.js @@ -0,0 +1,1214 @@ +App.SlaveAssignment.relationships = (function() { + "use strict"; + + let r; + + // eslint-disable-next-line no-unused-vars + let he, him, his, hers, himself, girl, loli, wife, woman, He, His; + // eslint-disable-next-line no-unused-vars + let he2, him2, his2, hers2, himself2, girl2, wife2, woman2, loli2, He2, His2; + let playerPronouns; + + let PC; + let friend; + + return saRelationships; + + /** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ + function saRelationships(slave) { + r = []; + + PC = V.PC; + ({ + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, girl, He, His, loli, wife + } = getPronouns(slave)); + playerPronouns = getPronouns(PC); + + if (slave.fuckdoll === 0) { + if (slave.relationship === 0 && slave.fetish !== "mindbroken") { + generateRelationship(slave); + } else if (slave.relationship !== 0) { + if (slave.relationship > 0) { + sanityCheck(slave); + } + if (slave.relationship !== 0) { + existingRelationship(slave); + if (slave.relationship > 2) { + consumateRelationship(slave); + } + } + } + if (slave.fetish !== "mindbroken" && totalRelatives(slave) > 0) { + familyFeelings(slave); + } + } + + return r.join(" "); + } + + /** Can this slave possibly be a friend? + * @param {App.Entity.SlaveState} slave + * @param {App.Entity.SlaveState} potentialFriend + * @returns {boolean} + */ + function canStartFriendship(slave, potentialFriend) { + return (potentialFriend.relationship === 0 && slave.rivalryTarget !== potentialFriend.ID && potentialFriend.ID !== slave.ID && potentialFriend.fetish !== "mindbroken" && potentialFriend.fuckdoll === 0 && isSlaveAvailable(potentialFriend)); + } + + /** Does the facility head accept her advances? + * @param {App.Entity.SlaveState} potentialFriend + * @returns {boolean} + */ + function silverTongue(potentialFriend, manipulationSkill) { + return manipulationSkill > (random(1, 100 + ((potentialFriend.intelligence + potentialFriend.intelligenceImplant) / 10))); + } + + /** + * @param {App.Entity.SlaveState} slave + * @param {App.Entity.SlaveState} friend + */ + function startFriendship(slave, friend, degree) { + friend.relationship = degree; + friend.relationshipTarget = slave.ID; + slave.relationship = degree; + slave.relationshipTarget = friend.ID; + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function generateRelationship(slave) { + let randomSeed; + + if (slave.devotion + slave.trust > 175 && random(1, 3) === 1) { // player + emotional slut + r.push(`${slave.slaveName} is quite devoted to you, and trusts both you and ${his} place as a slave. Since ${he} does not have a strong relationship with another slave,`); + if (slave.sexualQuirk === "romantic") { + r.push(`and persistently interprets sex in the most romantic possible terms, ${he} has decided that ${he} wants to be yours in ${his} heart as well as ${his}`); + if (slave.vagina > 0) { + r.push(`pussy.`); + } else if (slave.anus > 0) { + r.push(`butthole.`); + } else { + r.push(`mouth.`); + } + r.push(`<span class="relationship">${He}'s become emotionally bonded to you!</span>`); + slave.relationship = -2; + } else if (slave.assignment === Job.CONCUBINE) { + r.push(`and is your concubine, ${he} almost inevitably comes to view you as much as a lover as an owner. <span class="relationship">${He}'s become emotionally bonded to you!</span>`); + slave.relationship = -2; + } else if (V.masterSuiteUpgradeLuxury === 2 && slave.assignment === Job.MASTERSUITE) { + r.push(`and does nothing but eat, sleep, and make love to your other fucktoys, ${he} slowly loses sight of any distinction between emotional attachment and sexual congress. <span class="relationship">${He}'s become an emotional slut!</span>`); + slave.relationship = -1; + } else if (slave.assignment === Job.FUCKTOY || slave.assignment === Job.MASTERSUITE) { + r.push(`and spends ${his} days worshipping your`); + if (V.PC.dick !== 0) { + r.push(`cock${PC.vagina !== -1 ? " and" : ","}`); + } + if (V.PC.vagina !== -1) { + r.push(`cunt,`); + } + r.push(`${he} begins to focus more and more of ${his} happiness on how happy you are. <span class="relationship">${He}'s become emotionally bonded to you!</span>`); + slave.relationship = -2; + } else if (slave.assignment === Job.PUBLIC || slave.assignment === Job.CLUB) { + r.push(`and ${his} life is an endless stream of lovers, ${he} unconsciously loses any sense of emotional attachment outside the intimacy of sex. <span class="relationship">${He}'s become an emotional slut!</span>`); + slave.relationship = -1; + } else if (slave.energy > 95 && (slave.counter.anal + slave.counter.vaginal + slave.counter.oral + slave.counter.mammary + slave.counter.penetrative > ((V.week - slave.weekAcquired) * random(20, 30)))) { + r.push(`is a total sex addict, and has a spectacularly promiscuous sexual history, ${he} begins to think of sex as ${his} only meaningful emotional connection with people. <span class="relationship">${He}'s become an emotional slut!</span>`); + slave.relationship = -1; + } else { + r.push(`and loves you, ${he} begins to think of you as a ${woman} might think of ${his} lover — or spouse. ${He} knows ${he} cannot hope for more of a relationship with you than ${he} has, but ${he} finds emotional support in serving you nonetheless. <span class="relationship">${He}'s become emotionally bonded to you!</span>`); + slave.relationship = -2; + } + } else if (slave.career === "a Futanari Sister" && slave.rules.relationship === "permissive") { + for (const potentialFriend of V.slaves) { + if (potentialFriend.career === "a Futanari Sister" && potentialFriend.rules.relationship === "permissive" && canStartFriendship(slave, potentialFriend)) { + r.push(`${slave.slaveName} greets ${potentialFriend.slaveName} with joy. It's not clear whether they ever knew each other during their lives as Futanari Sisters, but it seems that they believe themselves to be in a relationship by simple virtue of having been Sisters. In any case, ${slave.slaveName} and ${potentialFriend.slaveName} <span class="relationship">become inseparable lovers</span> instantly, as though there's no possibility they would do anything else. They're even surprised when other slaves ask them about it; it's as though they're unaware that other possibilities even exist.`); + startFriendship(slave, potentialFriend, 4); + break; + } + } + } else if (slave.origin === "You were acquainted with $him before you were an arcology owner; your rival tried to use $him to manipulate you, but you rescued $him." && V.rivalryDuration > 20 && !["Intellectual Dependency", "Paternalism", "Racial Supremacism", "Slave Professionalism"].includes(V.rivalryFS)&& slave.newGamePlus === 0) { + potentialFriend = V.slaves.find((s) => (s.prestigeDesc === "You bankrupted and enslaved $him in revenge for $his part in the attack on your arcology by the Daughters of Liberty." && s.fuckdoll === 0 && s.fetish !== "mindbroken" && s.newGamePlus === 0)); + if (potentialFriend !== undefined) { + r.push(`${slave.slaveName} greets ${potentialFriend.slaveName} with joy, happy to see a familiar face again. Without any regard to you, <span class="relationship">they continue their prior relationship.</span>`); + if (potentialFriend.relationship > 0) { // remove me with multi-friend system + formerFriend = V.slaves.find((s) => (s.ID === potentialFriend.relationshipTarget)); + if (formerFriend !== undefined) { + formerFriend.relationshipTarget = 0; + formerFriend.relationship = 0; + } + } + startFriendship(slave, potentialFriend, 4); + } + } else if (slave.rules.relationship !== "restrictive") { + if (slave.trust > -90) { // used to be devotion > -90. Why a slave hating you wouldn't try to make friends with others that hate you doesn't make sense. Almost tempted to raise it to -50. + if (slave.behavioralFlaw === "none" || (slave.intelligence + slave.intelligenceImplant > 50)) { + randomSeed = random(1, 100); + } else { + randomSeed = random(1, 80); + } + const manipulationSkill = (slave.devotion + slave.trust + ((slave.intelligence + slave.intelligenceImplant) / 10)); // intended for defiant slaves to ingrain themselves with facility heads + if (randomSeed > 75) { + let resentment = 0; + for (const potentialFriend of V.slaves) { + ({ + he2, him2, his2, hers2, himself2, girl2, He2, His2, loli2 + } = getPronouns(potentialFriend).appendSuffix("2")); + if (canStartFriendship(slave, potentialFriend) && potentialFriend.assignment !== Job.CONFINEMENT) { + if (potentialFriend.ID === V.MadamID && slave.assignment === Job.BROTHEL) { + if (potentialFriend.rules.relationship !== "restrictive" && silverTongue(potentialFriend, manipulationSkill)) { + r.push(`${slave.slaveName} manages to ingratiate ${himself} with the Madam, ${potentialFriend.slaveName}. The two slaves have <span class="relationship">struck up a friendship.</span>`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + if (slave.devotion < -20) { + r.push(`${slave.slaveName} tries to strike up a friendship with the Madam, ${potentialFriend.slaveName}, and is <span class="trust dec">punished</span> by ${him2} for disrespect.`); + slave.trust -= 4; + } + } + } else if (potentialFriend.ID === V.djID && slave.assignment === Job.CLUB) { + if (potentialFriend.rules.relationship !== "restrictive" && silverTongue(potentialFriend, manipulationSkill)) { + r.push(`${slave.slaveName} manages to ingratiate ${himself} with the DJ, ${potentialFriend.slaveName}. The two slaves have <span class="relationship">struck up a friendship.</span>`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + if (slave.devotion < -20) { + r.push(`${slave.slaveName} tries to strike up a friendship with the DJ, ${potentialFriend.slaveName}, and is <span class="trust dec">punished</span> by ${him2} for disrespect.`); + slave.trust -= 4; + } + } + } else if (potentialFriend.ID === V.MilkmaidID && slave.assignment === Job.DAIRY) { + if (potentialFriend.rules.relationship !== "restrictive" && silverTongue(potentialFriend, manipulationSkill)) { + r.push(`${slave.slaveName} manages to ingratiate ${himself} with the Milkmaid, ${potentialFriend.slaveName}. The two slaves have <span class="relationship">struck up a friendship.</span>`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + if (slave.devotion < -20) { + r.push(`${slave.slaveName} tries to strike up a friendship with the Milkmaid, ${potentialFriend.slaveName}, and is <span class="trust dec">punished</span> by ${him2} for disrespect.`); + slave.trust -= 4; + } + } + } else if (potentialFriend.ID === V.FarmerID && slave.assignment === Job.FARMYARD) { + if (potentialFriend.rules.relationship !== "restrictive" && silverTongue(potentialFriend, manipulationSkill)) { + r.push(`${slave.slaveName} manages to ingratiate ${himself} with the Farmer, ${potentialFriend.slaveName}. The two slaves have <span class="relationship">struck up a friendship.</span>`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + if (slave.devotion < -20) { + r.push(`${slave.slaveName} tries to strike up a friendship with the Farmer, ${potentialFriend.slaveName}, and is <span class="trust dec">punished</span> by ${him2} for disrespect.`); + slave.trust -= 4; + } + } + } else if (potentialFriend.ID === V.SchoolteacherID && slave.assignment === Job.SCHOOL) { + if (potentialFriend.rules.relationship !== "restrictive" && silverTongue(potentialFriend, manipulationSkill)) { + r.push(`${slave.slaveName} manages to ingratiate ${himself} with the Schoolteacher, ${potentialFriend.slaveName}. The two slaves have <span class="relationship">struck up a friendship.</span>`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + if (slave.devotion < -20) { + r.push(`${slave.slaveName} tries to strike up a friendship with the Schoolteacher, ${potentialFriend.slaveName}, and is <span class="trust dec">punished</span> by ${him2} for disrespect.`); + slave.trust -= 4; + } + } + } else if (potentialFriend.ID === V.AttendantID && slave.assignment === Job.SPA) { + if (potentialFriend.rules.relationship !== "restrictive" && silverTongue(potentialFriend, manipulationSkill)) { + r.push(`${slave.slaveName} basks in the affection and care of the spa attendant, ${potentialFriend.slaveName}. The two slaves have <span class="relationship">struck up a friendship.</span>`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + if (slave.devotion < -20) { + r.push(`${slave.slaveName} tries to strike up a friendship with the spa attendant, ${potentialFriend.slaveName}. ${He2} gently <span class="devotion inc">counsels</span> ${him} to obey the rules.`); + slave.devotion += 1; + } + } + } else if (potentialFriend.ID === V.StewardessID && slave.assignment === Job.QUARTER) { + if (potentialFriend.rules.relationship !== "restrictive" && silverTongue(potentialFriend, manipulationSkill)) { + r.push(`${slave.slaveName} manages to ingratiate ${himself} with the Stewardess, ${potentialFriend.slaveName}. The two slaves have <span class="relationship">struck up a friendship.</span>`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + if (slave.devotion < -20) { + r.push(`${slave.slaveName} tries to strike up a friendship with the Stewardess, ${potentialFriend.slaveName}, and is <span class="trust dec">punished</span> by ${him2} for disrespect.`); + slave.trust -= 4; + } + } + } else if (potentialFriend.ID === V.WardenessID && slave.assignment === Job.CELLBLOCK) { + if (potentialFriend.rules.relationship !== "restrictive" && silverTongue(potentialFriend, manipulationSkill)) { + r.push(`${slave.slaveName} manages to earn the respect of the Wardeness, ${potentialFriend}.slaveName. The two slaves have <span class="relationship">struck up a friendship.</span>`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + if (slave.devotion < -20) { + r.push(`${slave.slaveName} tries to strike up a friendship with the Wardeness, ${potentialFriend.slaveName}, and is <span class="trust dec">beaten</span> by ${him2} for ${his} trouble.`); + slave.trust -= 5; + } + } + } else if (potentialFriend.ID === V.ConcubineID && slave.assignment === Job.MASTERSUITE) { + if (potentialFriend.rules.relationship !== "restrictive" && silverTongue(potentialFriend, manipulationSkill)) { + r.push(`${slave.slaveName} becomes especially close to the Concubine, ${potentialFriend.slaveName}. The two slaves have <span class="relationship">struck up a friendship.</span>`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + if (slave.devotion < -20 && potentialFriend.fetish !== "mindbroken") { + r.push(`${slave.slaveName} tries to strike up a friendship with the Concubine, ${potentialFriend.slaveName}, and is gently <span class="devotion inc">counseled</span> by ${him2} that such things are against the rules.`); + slave.devotion += 1; + } + } + } else if (potentialFriend.assignment === slave.assignment) { + if (random(1, 100) > 50) { + if (potentialFriend.rules.relationship !== "restrictive") { + r.push(`${slave.slaveName} and ${potentialFriend.slaveName} see a lot of each other`); + if (slave.assignment === Job.SCHOOL || slave.assignment === Job.CLASSES) { + r.push(`in class`); + } else if (slave.assignment === Job.CLINIC) { + r.push(`while being treated`); + } else if (slave.assignment === Job.CELLBLOCK) { + r.push(`while being punished`); + } else if (slave.assignment === Job.REST) { + r.push(`in their time off`); + } else { + r.push(`at work`); + } + r.push(`and <span class="relationship">strike up a friendship.</span>`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + if (resentment === 0) { + r.push(`${slave.slaveName} tries to strike up a friendship with ${potentialFriend.slaveName} and is <span class="trust dec">punished</span> for breaking the rules against such things; ${he} <span class="devotion dec">resents</span> being castigated for simple sociability.`); + slave.devotion -= 2; + slave.trust -= 2; + resentment++; + } + } + } + } else if (mutualChildren(slave, potentialFriend, V.slaves) > 0) { + if (App.Utils.sexAllowed(slave, potentialFriend)) { + if (potentialFriend.rules.relationship === "permissive") { + r.push(`${slave.slaveName} and ${potentialFriend.slaveName} have`); + if (mutualChildren(slave, potentialFriend, V.slaves) === 0) { + r.push(`a child`); + } else { + r.push(`children`); + } + r.push(`living in your penthouse, so it's not surprising that their offspring brings them together. They have <span class="relationship">become friends</span> for their child's sake.`); + startFriendship(slave, potentialFriend, 1); + break; + } else { + r.push(`${slave.slaveName} tries to renew ${his} relationship with ${potentialFriend.slaveName} and is <span class="trust dec">punished</span> for breaking the rules against such things; ${he} <span class="devotion dec">resents</span> being prevented from reuniting with ${him2}.`); + slave.devotion -= 2; + slave.trust -= 2; + } + } + } else if (potentialFriend.fetish === slave.fetish || (potentialFriend.fetish === "sadist" && slave.fetish === "masochist") || (slave.fetish === "sadist" && potentialFriend.fetish === "masochist") || (potentialFriend.fetish === "dom" && slave.fetish === "submissive") || (slave.fetish === "submissive" && potentialFriend.fetish === "dom")) { + if (slave.fetish !== "none" && App.Utils.sexAllowed(slave, potentialFriend)) { + if (potentialFriend.rules.relationship === "permissive") { + r.push(`${slave.slaveName} and ${potentialFriend.slaveName} share sexual inclinations, so it's only natural that they <span class="relationship">become friends with benefits.</span>`); + startFriendship(slave, potentialFriend, 3); + break; + } else { + if (resentment === 0) { + r.push(`${slave.slaveName} tries to strike up a sexual relationship with ${potentialFriend.slaveName} and is <span class="trust dec">punished</span> for breaking the rules against such things; ${he} <span class="devotion dec">resents</span> being prevented from pursuing ${him2}.`); + slave.devotion -= 2; + slave.trust -= 2; + resentment++; + } + } + } + } + } + } + } + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function sanityCheck(slave) { + const friend = getSlave(slave.relationshipTarget); + if (friend === undefined) { + r.push(`<span class="error">${slave.slaveName}'s relationship was ${slave.relationship} and relationshipTarget was ${slave.relationshipTarget} but no slave with that ID was found</span>`); + slave.relationship = 0; + slave.relationshipTarget = 0; + } else { + if (slave.rivalry !== 0 && slave.rivalryTarget === friend.ID) { + friend.rivalry = 0; + friend.rivalryTarget = 0; + slave.rivalry = 0; + slave.rivalryTarget = 0; + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function existingRelationship(slave) { + if (slave.relationship > 0) { + friend = getSlave(slave.relationshipTarget); + ({ + he2, him2, his2, hers2, himself2, girl2, He2, His2, loli2 + } = getPronouns(friend).appendSuffix("2")); + } + if (slave.fetish === "mindbroken" && slave.relationship !== -3) { + r.push(`Since ${he} is mindbroken, ${he} <span class="relationship dec">can't really maintain</span>`); + if (slave.relationship > 0) { + r.push(`any meaningful relationship with ${friend.slaveName}.`); + friend.relationship = 0; + friend.relationshipTarget = 0; + } else if (slave.relationship === -1) { + r.push(`any emotional dependencies.`); + } else { + r.push(`any meaningful relationship with you.`); + } + slave.relationship = 0; + slave.relationshipTarget = 0; + } else if (slave.relationship === -1) { + if ([Job.DJ, Job.CLUB, Job.PUBLIC, Job.WHORE, job.BROTHEL].includes(slave.assignment)) { + r.push(`${His} endless stream of lovers maintains and satisfies ${his} emotional reliance on sex.`); + } else if (slave.assignment === Job.MASTERSUITE && V.masterSuiteUpgradeLuxury === 2) { + r.push(`Forming a part of the pile of copulating bodies in ${V.masterSuiteName} satisfies ${his} voracious sexual appetite.`); + } else if ((slave.energy <= 95)) { + r.push(`${He} is not a complete nymphomaniac and ${he} doesn't have a constant stream of lovers, so ${he} has <span class="relationship dec">begun to rely less on sex for emotional support</span> than ${he} once did.`); + slave.relationship = 0; + } else if (slave.energy > 95) { + r.push(`${He} is such a nymphomaniac that even without a steady stream of lovers, ${his} emotional reliance on promiscuity remains.`); + if (slave.devotion > 60) { + r.push(`${He} is <span class="devotion dec">emotionally unfulfilled</span> by ${his} assignment, since it does not afford ${him} the validation of massive promiscuity.`); + slave.devotion--; + } + if (slave.trust > 60) { + r.push(`${He} is <span class="trust dec">impatient</span> with ${his} limited field of potential sexual partners, and would prefer to be a publicly available nympho.`); + slave.trust--; + } + } + } 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 { + 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.rules.relationship === "restrictive" && slave.relationship !== 5) { + if (friend.rules.relationship === "restrictive") { + r.push(`Since the rules forbid the relationship between ${slave.slaveName} and ${friend.slaveName}, they are <span class="relationship dec">forced apart.</span>`); + if (slave.relationship > 1) { + slave.relationship--; + friend.relationship = slave.relationship; + } else { + friend.relationship = 0; + friend.relationshipTarget = 0; + slave.relationship = 0; + slave.relationshipTarget = 0; + } + if (slave.devotion <= 50 && friend.devotion <= 50) { + r.push(`${slave.slaveName} and ${friend.slaveName} both <span class="devotion dec">resent</span> this.`); + slave.devotion -= 2; + friend.devotion -= 2; + } else if (slave.devotion <= 50) { + r.push(`${slave.slaveName} <span class="devotion dec">resents</span> this.`); + slave.devotion -= 2; + } else if (friend.devotion <= 50) { + r.push(`${friend.slaveName} <span class="devotion dec">resents</span> this.`); + friend.devotion -= 2; + } + } + } else if (slave.rules.relationship === "just friends" && slave.relationship !== 5 && slave.relationship > 2) { + if (friend.rules.relationship === "restrictive") { + r.push(`Since the sexual relationship between ${slave.slaveName} and ${friend.slaveName} is against the rules, they`); + if (!hasAnyArms(slave) && !hasAnyArms(friend)) { + r.push(`are, metaphorically speaking,`); + } else { + r.push(`are`); + } + r.push(`<span class="relationship dec">forced to keep their hands to themselves.</span>`); + friend.relationship = 2; + slave.relationship = 2; + if (slave.devotion <= 50 && friend.devotion <= 50) { + r.push(`${slave.slaveName} and ${friend.slaveName} both <span class="devotion dec">resent</span> this.`); + slave.devotion -= 2; + friend.devotion -= 2; + } else if (slave.devotion <= 50) { + r.push(`${slave.slaveName} <span class="devotion dec">resents</span> this.`); + slave.devotion -= 2; + } else if (friend.devotion <= 50) { + r.push(`${friend.slaveName} <span class="devotion dec">resents</span> this.`); + friend.devotion -= 2; + } + } + } else { + let seed = 0; + r.push(`${slave.slaveName}`); + switch (slave.relationship) { + case 1: // friends + r.push(`is friends with ${friend.slaveName}.`); + if (slave.devotion + slave.trust > 170 && random(1, 2) === 1) { + r.push(`${He}'s very devoted to you, and strongly trusts both you and ${his} place as a ${slave}. Since ${he} is just friends with ${friend.slaveName},`); + if (slave.sexualQuirk === "romantic") { + r.push(`and persistently interprets sex in the most romantic possible terms, ${he} has decided that ${he} wants to be yours in ${his} heart as well as ${his} `); + if (slave.vagina > 0) { + r.push(`pussy.`); + } else if (slave.anus > 0) { + r.push(`butthole.`); + } else { + r.push(`mouth.`); + } + r.push(`<span class="relationship">${He}'s become emotionally bonded to you!</span>`); + slave.relationship = -2; + } else if (slave.energy > 90) { + r.push(`and is a total sex addict, ${he} begins to think of sex as ${his} only meaningful emotional connection with people. <span class="relationship">${He}'s become an emotional slut!</span>`); + slave.relationship = -1; + } else { + r.push(`and loves you, ${he} begins to think of you as a ${woman} might think of ${his} lover — or spouse. ${He} knows ${he} cannot hope for more of a relationship with you than ${he} has, but ${he} finds emotional support in serving you nonetheless. <span class="relationship">${He}'s become emotionally bonded to you!</span>`); + slave.relationship = -2; + } + friend.relationship = 0; + friend.relationshipTarget = 0; + slave.relationshipTarget = 0; + } else if (areRelated(slave, friend) && (random(1, 100) > 80)) { + r.push(`They build on their family relationship and become <span class="relationship">best friends.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (mutualChildren(slave, friend, V.slaves) > 0 && (random(1, 100) < (50+ (10 * mutualChildren(slave, friend, V.slaves))))) { + r.push(`Hoping to benefit their mutual children, they draw closer together, becoming <span class="relationship">best friends.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (slave.energy > 95 && random(1, 100) > 70) { + r.push(`${slave.slaveName} obviously lusts after ${his} friend, and does everything ${he} can to <span class="relationship">draw ${him2} closer.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (slave.attrXX > 85 && random(1, 100) > 70 && (friend.vagina > -1 || friend.faceShape !== "masculine")) { + r.push(`${slave.slaveName} obviously lusts after ${his} friend, and does everything ${he} can to <span class="relationship">draw ${him2} closer.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (slave.attrXY > 85 && random(1, 100) > 70 && (friend.dick > 0 || friend.faceShape === "masculine")) { + r.push(`${slave.slaveName} obviously lusts after ${his} friend, and does everything ${he} can to <span class="relationship">draw ${him2} closer.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (random(1, 100) > 90) { + r.push(`They support and reassure each other and become <span class="relationship">best friends.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } + break; + case 2: // BFFs; + r.push(`maintains a close friendship with ${friend.slaveName}.`); + if (slave.sexualQuirk === "romantic") { + r.push(`${His} romantic bent drives ${him} to search for a regular sexual partner.`); + seed = 10; + } + if (slave.devotion + slave.trust > 95 && random(1, 2) === 1) { + r.push(`${slave.slaveName} is totally devoted to you, and implicitly trusts both you and ${his} place as a slave. Since ${his} relationship with ${friend.slaveName} has not yet turned sexual, and`); + if (slave.sexualQuirk === "romantic") { + r.push(`${he} persistently interprets sex in the most romantic possible terms, ${he} has decided that ${he} wants to be yours in ${his} heart as well as ${his}`); + if (slave.vagina > 0) { + r.push(`pussy.`); + } else if (slave.anus > 0) { + r.push(`butthole.`); + } else { + r.push(`mouth.`); + } + r.push(`<span class="relationship">${He}'s become emotionally bonded to you!</span>`); + slave.relationship = -2; + } else if (slave.energy > 90) { + r.push(`${he}'s a total sex addict, ${he} begins to think of sex as ${his} only meaningful emotional connection with people. <span class="relationship">${He}'s become an emotional slut!</span>`); + slave.relationship = -1; + } else { + r.push(`${he} loves you, ${he} begins to think of you as a ${woman} might think of ${his} lover — or spouse. ${He} knows ${he} cannot hope for more of a relationship with you than ${he} has, but ${he} finds emotional support in serving you nonetheless. <span class="relationship">${He}'s become emotionally bonded to you!</span>`); + slave.relationship = -2; + } + friend.relationship = 0; + friend.relationshipTarget = 0; + slave.relationshipTarget = 0; + } else if (mutualChildren(slave, friend, V.slaves) > 0 && random(1, 100) < (50 + (10 * mutualChildren(slave, friend, V.slaves)) + seed)) { + r.push(`Having already had kids together, their relationship turns sexual once again, turning them into <span class="relationship">friends with benefits.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (V.seeIncest === 1 && slave.energy > 95 && areRelated(slave, friend) && random(1, 100) > (90-seed)) { + r.push(`Driven by nymphomania to attempt to have sex with everyone, ${slave.slaveName} successfully seduces ${his} ${relativeTerm(slave, friend)}, ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (V.seeIncest === 1 && slave.sexualQuirk === "perverted" && areRelated(slave, friend) && random(1, 100) > (80 - seed)) { + r.push(`Reveling in the taboo nature of ${his} attraction to ${friend.slaveName}, ${slave.slaveName} successfully seduces ${his} ${relativeTerm(slave, friend)}, making them <span class="relationship">friends with benefits.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (V.seeIncest === 1 && slave.behavioralQuirk === "sinful" && areRelated(slave, friend) && random(1, 100) > (80 - seed)) { + r.push(`Aroused by the chance to commit the sin of incest, ${slave.slaveName} successfully seduces ${his} ${relativeTerm(slave, friend)}, ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (slave.energy > 95 && random(1, 100) > (80 - seed)) { + r.push(`${slave.slaveName} successfully seduces ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if ((random(1, 100) > (100 - seed) - (0.2 * slave.attrXX)) && (friend.vagina > -1 || friend.faceShape !== "masculine")) { + r.push(`${slave.slaveName} successfully seduces ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if ((random(1, 100) > (100 - seed) - (0.2 * slave.attrXY)) && (canAchieveErection(friend) || friend.faceShape === "masculine")) { + r.push(`${slave.slaveName} successfully seduces ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (V.seeIncest === 1 && areRelated(slave, friend) && (random(1, 100) > (95 - seed))) { + r.push(`Eventually, they happen to be together and horny, and find themselves fucking without thinking. They have become incestuous <span class="relationship">friends with benefits.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (random(1, 100) > (95 - seed)) { + if (friend.vagina !== -1 && slave.behavioralFlaw === "hates women" && random(1, 2) === 1) { + r.push(`Despite ${slave.slaveName}'s dislike of pussy,`); + } else if ((friend.dick > 0 || friend.faceShape === "masculine") && slave.behavioralFlaw === "hates men" && random(1, 2) === 1) { + r.push(`Despite ${slave.slaveName}'s distaste for cock,`); + } else { + r.push(`Living in an atmosphere of omnipresent sexuality,`); + } + r.push(`they fuck in a weak moment and find themselves becoming <span class="relationship">friends with benefits.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } + break; + case 3: // FWB + r.push(`keeps up a sexual friendship with ${friend.slaveName}.`); + if (slave.sexualQuirk === "romantic") { + r.push(`${His} romantic bent drives ${him} to do ${his} best to advance ${his} relationship to an emotional level.`); + seed = 10; + } + if (V.seeIncest === 1 && slave.energy > 95 && areRelated(slave, friend) && random(1, 100) > (90 - seed)) { + r.push(`${He}'s such a desperate nympho that constant incest is nothing to ${him}. ${He} develops real feelings for ${friend.slaveName} as a romantic partner. Their relationship becomes <span class="relationship">romantically emotional</span> as well as physical and familial.`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (V.seeIncest === 1 && slave.sexualQuirk === "perverted" && areRelated(slave, friend) && random(1, 100) > (80 - seed)) { + r.push(`Reveling in the taboo nature of ${his} sexual relationship with ${friend.slaveName}, ${he} not only enjoys ${his} ${relativeTerm(slave, friend)}'s body, but looks after ${his2} pleasure, too. Their relationship becomes <span class="relationship">romantically emotional</span> as well as physical and familial.`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (V.seeIncest === 1 && slave.behavioralQuirk === "sinful" && areRelated(slave, friend) && random(1, 100) > (80 - seed)) { + r.push(`${He} gets deep, perverse satisfaction by constant commission of the sin of incest, which is extreme enough to appease even ${his} appetite for transgression. ${His} incestuous relationship becomes <span class="relationship">romantically emotional</span> as well as physical and familial.`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (mutualChildren(slave, friend, V.slaves) > 0 && random(1, 100) < (50 + (10 * mutualChildren(slave, friend, V.slaves)) + seed)) { + r.push(`Between their children and common sexual flings, they begin seeing each other as a traditional couple. Their relationship becomes <span class="relationship">strongly emotional</span> as well as physical.`); + if (slave.pregSource === friend.ID && friend.pregSource === slave.ID && slave.pregKnown === 1 && friend.pregKnown === 1) { + r.push(`Not very surprising, since they both have the other's child growing in their womb.`); + } else if (slave.pregSource === friend.ID && slave.pregKnown === 1) { + r.push(`Not very surprising, since ${slave.slaveName} is carrying another of ${friend.slaveName}'s children.`); + } else if (friend.pregSource === slave.ID && friend.pregKnown === 1) { + r.push(`Not very surprising, since ${friend.slaveName} is carrying another of ${slave.slaveName}'s children.`); + } + slave.relationship++; + friend.relationship = slave.relationship; + } else if (slave.energy > 95 && random(1, 100) > (80 - seed)) { + r.push(`${He} not only enjoys ${friend.slaveName}'s body, but looks after ${his2} pleasure, too. Without meaning it to, their relationship becomes <span class="relationship">strongly emotional</span> as well as physical.`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if ((random(1, 100) > (100 - seed) - (0.2 * slave.attrXX)) && (friend.vagina > -1 || friend.faceShape !== "masculine")) { + r.push(`${He} not only enjoys ${friend.slaveName}'s body, but looks after ${his2} pleasure, too. Without meaning it to, their relationship becomes <span class="relationship">strongly emotional</span> as well as physical.`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if ((random(1, 100) > (100 - seed) - (0.2 * slave.attrXY)) || (friend.dick > 0 || friend.faceShape === "masculine")) { + r.push(`${He} not only enjoys ${friend.slaveName}'s body, but looks after ${his2} pleasure, too. Without meaning it to, their relationship becomes <span class="relationship">strongly emotional</span> as well as physical.`); + slave.relationship++; + friend.relationship = slave.relationship; + } else if (random(1, 100) > (95 - seed)) { + r.push(`They've spent enough time looking after each other's sexual and emotional needs that their relationship has become <span class="relationship">very strong.</span>`); + slave.relationship++; + friend.relationship = slave.relationship; + } + break; + case 4: // lovers + r.push(`and ${friend.slaveName} are lovers.`); + break; + default: // married + r.push(`has a slave ${wife2}, ${friend.slaveName}.`); + if (V.arcologies[0].FSChattelReligionist !== "unset") { + r.push(`Society <span class="reputation inc">approves</span> of their marriage, which advances the slave sacrament.`); + V.arcologies[0].FSChattelReligionist += 0.05 * V.FSSingleSlaveRep; + repX(V.FSSingleSlaveRep * (V.arcologies[0].FSChattelReligionist / V.FSLockinLevel), "SlaveRelationships", slave); + } + } + if (slave.relationship > 0) { // catch should she change her relationship status + if (slave.devotion <= 95) { + if (slave.devotion !== friend.devotion) { + r.push(`${slave.slaveName} absorbs`); + if (slave.relationship === 1) { + r.push(`a touch of ${his} friend's`); + } else if (slave.relationship === 2) { + r.push(`a little of ${his} best friend's`); + } else if (slave.relationship === 3) { + r.push(`some of ${his} close friend's`); + } else if (slave.relationship === 4) { + r.push(`a lot of ${his} lover's`); + } else { + r.push(`much of ${his} ${wife2}'s`); + } + if (slave.devotion > friend.devotion) { + r.push(`<span class="devotion dec">`); + if (friend.devotion > 50) { + r.push(`remaining doubts about you.</span>`); + } else if (friend.devotion > 20) { + r.push(`remaining hesitations about sexual slavery.</span>`); + } else if (friend.devotion >= -20) { + r.push(`unhappiness about being a sex slave.</span>`); + } else { + r.push(`anger at being a slave.</span>`); + } + } else { + r.push(`<span class="devotion inc">`); + if (friend.devotion > 50) { + r.push(`love for you.</span>`); + } else if (friend.devotion > 20) { + r.push(`acceptance of sexual slavery.</span>`); + } else if (friend.devotion >= -20) { + r.push(`submission to the reality of being a sex slave.</span>`); + } else { + r.push(`unwillingness to immediately rebel.</span>`); + } + } + slave.devotion -= Math.trunc((slave.devotion - friend.devotion) * (0.1 * slave.relationship)); + } + } else if (friend.devotion <= 95) { + r.push(`${He}'s so devoted to you that ${he}'s unaffected by ${friend.slaveName}'s less abject submission.`); + } + if (slave.trust <= 95) { + r.push(`${slave.slaveName}`); + if (slave.trust < -20) { + r.push(`cares for ${friend.slaveName} and is <span class="trust dec">terrified</span> of what you might do to ${him2} if either of them misbehave. ${He} <span class="devotion inc">does ${his} best</span> to avoid that.`); + slave.trust -= slave.relationship; + slave.devotion += slave.relationship; + } else { + r.push(`<span class="trust inc">trusts you</span>`); + if (slave.relationship <= 2) { + r.push(`a little more for allowing ${him} to have a friend.`); + } else if (slave.relationship === 3) { + r.push(`for letting ${him} have a fuckbuddy.`); + } else if (slave.relationship === 4) { + r.push(`for permitting ${him} and ${his} lover to be together.`); + } else { + r.push(`for giving ${him} a ${wife2}.`); + } + slave.trust += slave.relationship; + } + } else if (slave.devotion > 95 && slave.relationship > 4) { + r.push(`${He} feels`); + if (V.arcologies[0].FSChattelReligionist !== "unset") { + r.push(`blessed with`); + } else { + r.push(`${he} has`); + } + r.push(`a truly good life as your ${slave}.`); + } + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function incestReactions(slave, relative) { + if (areRelated(slave, relative)) { + const relationType = relativeTerm(slave, relative); + const repType = relative.ID === -1 ? "PCRelationships" : "SlaveRelationships"; + + 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(`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 === 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 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 === 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)), 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> 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, 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) { + r.push(`${He}'s <span class="devotion inc">very happy</span> with ${his} romantic status, since it means ${he} regularly gets monster cock.`); + if (canDoAnal(slave) && slave.anus > 0 && slave.anus < 3) { + r.push(`${He}'s such a size queen that ${he} takes it up ${his} ass as often as ${he} can bear it, despite ${his} poor anus not being used to such abuse. This <span class="lime">stretches out ${his} sphincter.</span>`); + slave.anus++; + } + if (canDoVaginal(slave) && slave.vagina > 0 && slave.vagina < 3) { + r.push(`It's a little big for what ${his} pussy can handle, <span class="lime">but ${he} gets used to it.</span>`); + slave.vagina++; + } + r.push(`For ${his2} part, ${lover.slaveName} <span class="devotion inc">can barely believe ${his2} luck,</span> their sex life is so good.`); + slave.devotion += 2; + lover.devotion += 2; + } else if (lover.dick > 4) { + r.push(`${He} <span class="devotion inc">quite likes</span> being in a sexual relationship with a slave who has such an impressive dick.`); + if (canDoAnal(slave) && slave.anus > 0 && slave.anus < 2) { + r.push(`${He}'s such a size queen that ${he} takes it up ${his} ass as often as ${he} can bear it, despite ${his} tight butt not being used to such abuse. This <span class="lime">stretches out ${his} sphincter.</span>`); + slave.anus++; + } + if (canDoVaginal(slave) && slave.vagina > 0 && slave.vagina < 2) { + r.push(`It's a little big for what ${his} tight pussy can handle, <span class="lime">but ${he} gets used to it.</span>`); + slave.vagina++; + } + r.push(`For ${his2} part, ${lover.slaveName} <span class="devotion inc">enjoys</span> the benefits of having a lover so interested in ${his2} junk.`); + slave.devotion++; + lover.devotion++; + } else if (lover.dick > 3) { + r.push(`${slave.slaveName} <span class="devotion inc">certainly doesn't mind</span> having reliable access to such a nice big dick. For ${his2} part, ${lover.slaveName} <span class="devotion inc">likes</span> having a lover who finds ${his2} penis appealing.`); + slave.devotion++; + lover.devotion++; + } + } + if (slave.energy <= 90) { + if (lover.energy > 95) { + r.push(`${lover.slaveName} is such a sex addict that ${he2} drags ${slave.slaveName} along with ${him2} in their enthusiastic sex life, <span class="improvement">slowly improving ${his} sex drive.</span>`); + slave.energy += 3; + } else if (lover.fetish === slave.fetish && lover.fetish !== "none") { + r.push(`${lover.slaveName} and ${slave.slaveName} enjoy sharing their sexual fetishes so much it <span class="improvement">improves their sex drives</span> in proportion to the strength of their kinks.`); + slave.energy += 1 + Math.trunc(slave.fetishStrength / 30); + } else if (slave.attrXX > 65 && (lover.vagina > -1 || (lover.face > 0 && lover.faceShape !== "masculine"))) { + r.push(`${slave.slaveName} is very much attracted to ${lover.slaveName}, and their fulfilling sexual relationship <span class="improvement">gradually improves ${slave.slaveName}'s sex drive.</span>`); + slave.energy++; + } else if (slave.attrXY > 65 && lover.dick > 0) { + r.push(`${slave.slaveName} enjoys ${lover.slaveName} and ${his2} cock, and their fulfilling sexual relationship <span class="improvement">gradually improves ${slave.slaveName}'s sex drive.</span>`); + slave.energy++; + } + } + if (slave.attrXX <= 95 && random(1, 100) < (slave.relationship * 5) && (lover.vagina > -1 || lover.faceShape !== "masculine")) { + if (slave.attrKnown === 1) { // just becuase you don't know about it doesn't mean it's not happening. + r.push(`After finding comfort with a feminine lover, ${slave.slaveName} begins to experience more attraction to women.`); + } + slave.attrXX += 2; + } + if (slave.attrXY <= 95 && random(1, 100) < (slave.relationship * 5) && canAchieveErection(lover)) { + if (slave.attrKnown === 1) { + r.push(`After growing close to a lover with a dick, ${slave.slaveName} begins to experience more attraction to men.`); + } + slave.attrXY += 2; + } + if (lover.fetish !== "none" && lover.fetish !== "mindbroken" && slave.fetishStrength <= 95 && lover.fetish !== slave.fetish && fetishChangeChance(slave) > (random(0, 100) - (slave.relationship * 5))) { + switch (lover.fetish) { + case "boobs": + r.push(`After experiencing ${lover.slaveName}'s love of breasts, both ${his2} own and ${slave.slaveName}'s, ${slave.slaveName} happily joins ${him2} as a <span class="fetish gain">boob fanatic.</span>`); + slave.fetish = "boobs"; + slave.fetishKnown = 1; + slave.fetishStrength = 65; + break; + case "buttslut": + r.push(`${lover.slaveName} begs ${slave.slaveName} to fuck ${his2} ass so many times that ${slave.slaveName} reconsiders ${his} stance on buttsex. ${He} becomes just as much of an <span class="fetish gain">anal slut</span> as ${lover.slaveName}.`); + slave.fetish = "buttslut"; + slave.fetishKnown = 1; + slave.fetishStrength = 65; + break; + case "cumslut": + r.push(`After sharing blowjobs with ${lover.slaveName} enough times, ${slave.slaveName} develops an <span class="fetish gain">oral fixation</span> of ${his} own.`); + slave.fetish = "cumslut"; + slave.fetishKnown = 1; + slave.fetishStrength = 65; + break; + case "submissive": + if (slave.fetish !== "dom") { + r.push(`${lover.slaveName} begs ${slave.slaveName} to dominate ${him2} so many times that ${slave.slaveName} gets used to domination, and finds ${he} likes it. ${He} becomes just as much of a <span class="fetish gain">sexual dominant</span> as a slave can be.`); + slave.fetish = "dom"; + slave.fetishKnown = 1; + slave.fetishStrength = 65; + } + break; + case "dom": + if (slave.fetish !== "submissive") { + r.push(`${lover.slaveName} holds ${slave.slaveName} down and fucks ${him} so many times that ${slave.slaveName} starts to get off on being used. ${He} becomes a true <span class="fetish gain">sexual submissive,</span> and loves ${lover.slaveName} all the more for dominating ${him}.`); + slave.fetish = "submissive"; + slave.fetishKnown = 1; + slave.fetishStrength = 65; + } + break; + case "masochist": + if (slave.fetish !== "sadist") { + r.push(`${lover.slaveName} begs ${slave.slaveName} to hurt ${him2} so many times that ${slave.slaveName} gets used to sadism, and finds ${he} likes it. ${He} becomes just as much of an <span class="fetish gain">sexual sadist</span> as a slave can be.`); + slave.fetish = "sadist"; + slave.fetishKnown = 1; + slave.fetishStrength = 65; + } + break; + case "sadist": + if (slave.fetish !== "masochist") { + r.push(`${lover.slaveName} hits ${slave.slaveName} during sex so often that ${slave.slaveName} starts to get off on being beaten. ${He} becomes a true <span class="fetish gain">masochist,</span> and loves ${lover.slaveName} all the more for abusing ${him}.`); + slave.fetish = "masochist"; + slave.fetishKnown = 1; + slave.fetishStrength = 65; + } + break; + case "humiliation": + r.push(`${lover.slaveName} begs ${slave.slaveName} to humiliate ${him2} sexually so many times that ${slave.slaveName} can't help but be embarrassed by all the public sex, ${himself}. ${He} gets off on the <span class="fetish gain">humiliation</span> with ${lover.slaveName}.`); + slave.fetish = "humiliation"; + slave.fetishKnown = 1; + slave.fetishStrength = 65; + break; + case "pregnancy": + r.push(`${lover.slaveName} shares ${his2} hopes and dreams of pregnancy and children with ${slave.slaveName} all the time, and ${slave.slaveName} can't help but feel`); + if (isFertile(slave) && isFertile(lover)) { + r.push(`${his} <span class="fetish gain">biological clock</span> tick in time with ${lover.slaveName}'s.`); + } else if (lover.pregKnown === 1 && isFertile(slave)) { + r.push(`the <span class="fetish gain">need to become pregnant</span> like ${lover.slaveName}.`); + } else { + r.push(`the <span class="fetish gain">same obsession</span> as ${lover.slaveName}.`); + } + slave.fetish = "pregnancy"; + slave.fetishKnown = 1; + slave.fetishStrength = 65; + break; + } + } + if (lover.actualAge - slave.actualAge > 10 && slave.relationship >= 4 && random(1, 300) > (slave.intelligence + slave.intelligenceImplant + lover.intelligence + lover.intelligenceImplant) && lover.devotion > 75 && lover.trust > 50 && (lover.intelligence + lover.intelligenceImplant > 15) && (slave.devotion > 20 || (slave.devotion >= -20 && slave.trust < -20) || slave.trust > -10)) { + if ((lover.skill.oral > slave.skill.oral) || (lover.skill.anal > slave.skill.anal) || (lover.skill.vaginal > slave.skill.vaginal && slave.vagina >= 0 && lover.vagina >= 0) || (lover.trust > slave.trust)) { + r.push(`${slave.slaveName}'s `); + if (slave.relationship >= 5) { + r.push(`${wife2}`); + } else { + r.push(`lover`); + } + r.push(`is older, more experienced, and`); + if (lover.skill.oral > slave.skill.oral) { + r.push(`better at blowjobs than ${he} is. They are such good slaves that the senior ${girl2} serves as a mentor to the junior, improving ${his} oral skills.`); + r.push(`${SkillIncrease.Oral(slave, 5)}`); + } else if (lover.skill.anal > slave.skill.anal) { + r.push(`better at`); + if (lover.anus > 0) { + r.push(`taking a buttfuck`); + } else { + r.push(`using ${his2} rear`); + } + r.push(`than ${he} is, and they are such good slaves that the senior ${girl2} serves as a mentor to the junior, improving ${his} anal skills.`); + r.push(`${SkillIncrease.Anal(slave, 5)}`); + } else if (lover.skill.vaginal > slave.skill.vaginal && slave.vagina > 0 && lover.vagina > 0) { + if (lover.vagina > 0) { + r.push(`a better lover`); + } else { + r.push(`better with a virgin pussy`); + } + r.push(`than ${he}`); + if (slave.vagina > 0) { + r.push(`is without one,`); + } else { + r.push(`is,`); + } + r.push(`and they are such good slaves that the senior ${girl2} serves as a mentor to the junior, improving ${his} vaginal skills.`); + r.push(`${SkillIncrease.Vaginal(slave, 5)}`); + } else if (lover.trust > slave.trust) { + r.push(`a better slave than ${he} is, and they are such obedient slaves that the senior ${girl2} serves as a mentor to the junior, <span class="trust inc">improving ${his} trust.</span>`); + slave.trust += 5; + } else { + r.push(`a more devoted slave than ${he} is; since they are such obedient slaves, the senior ${girl2} serves as a mentor to the junior, <span class="devotion inc">teaching ${him} to better serve you.</span>`); + slave.devotion += 2; + } + } + } + } else { // lovers not allowed to have sex...that's just mean + r.push(`${He}'s <span class="devotion dec">frustrated,</span> both sexually and mentally, since ${he}'s not allowed to fuck ${lover.slaveName}`); + slave.devotion -= 2; + if (disobedience(slave) + 5 > random(0, 100)) { + r.push(`and tries to defy your rules, <span class="trust dec">earning severe punishment.</span>`); + slave.trust -= 3; + } else { + r.push(`but <span class="trust inc">trusts</span> that you know best.`); + slave.trust++; + } + if (slave.relationship < 5 && random(0, 100) > 90) { + r.push(`With the lack of sexual intimacy, ${slave.slaveName} and ${lover.slaveName} find themselves less passionate about each other and suffer a break up, becoming <span class="relationship dec">merely friends.</span> They both <span class="devotion dec">deeply regret</span> the loss of that spark.`); + slave.relationship = 2; + lover.relationship = 2; + slave.devotion -= 10; + lover.devotion -= 10; + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function familyFeelings(slave) { + if (slave.trust <= 95) { + let relatives = V.slaves.filter((s) => areRelated(slave, s)); // Is it possible to move this into the loop? + for (const relative of relatives) { + ({ + he2, him2 + } = getPronouns(relative).appendSuffix("2")); + if (slave.trust < -20) { + if (slave.rivalryTarget !== relative.ID) { + if (isParentP(relative, slave)) { + r.push(`${slave.slaveName} is <span class="trust dec">agonizingly aware</span> that ${his} child ${relative.slaveName} is also your slave and might suffer if either of them angers you, and <span class="devotion inc">does ${his} best</span> to protect ${him2}.`); + slave.trust -= 2; + slave.devotion += 6; + } else { + r.push(`${slave.slaveName} is <span class="trust dec">painfully conscious</span> that ${his} ${relativeTerm(slave, relative)} ${relative.slaveName} is also your slave and might suffer if either of them displeases you, and <span class="devotion inc">tries to obey</span> as best ${he} can.`); + slave.trust -= 1; + slave.devotion += 3; + } + } + } else { + r.push(`${slave.slaveName} knows that ${his} ${relativeTerm(slave, relative)} ${relative.slaveName}`); + if (relative.devotion > 50) { + r.push(`loves being your sex slave, and is <span class="devotion inc">happy</span> for ${him2}.`); + slave.devotion += 4; + } else if (relative.devotion > 20 || relative.trust < -20) { + r.push(`is an obedient sex slave, and hopes ${he2}'ll avoid punishment.`); + } else { + r.push(`hates being a sex slave, and is <span class="trust dec">afraid</span> for ${him2}.`); + slave.trust -= 1; + } + } + } + } + } +})(); diff --git a/src/endWeek/standardSlaveReport.js b/src/endWeek/standardSlaveReport.js index ba1e5c9f6c7976d283544188a25faec52d5e8d56..97378aebef66fb64619c314088c43013073053c3 100644 --- a/src/endWeek/standardSlaveReport.js +++ b/src/endWeek/standardSlaveReport.js @@ -15,7 +15,7 @@ App.SlaveAssignment.standardSlaveReport = function(slave, silent=false) { diet = App.UI.DOM.renderPassage("SA diet"), ltEffects = App.UI.DOM.renderPassage("SA long term effects"), drugs = App.SlaveAssignment.drugs(slave), - relationships = App.UI.DOM.renderPassage("SA relationships"), + relationships = App.SlaveAssignment.relationships(slave), rivalries = App.SlaveAssignment.rivalries(slave), devotion = App.UI.DOM.renderPassage("SA devotion"); diff --git a/src/gui/css/mainStyleSheet.css b/src/gui/css/mainStyleSheet.css index 02a8878c831774638822fc8d7d1d64788775c0c9..62228ef762102cadf8c9868598463a9a9d739419 100644 --- a/src/gui/css/mainStyleSheet.css +++ b/src/gui/css/mainStyleSheet.css @@ -202,7 +202,7 @@ span.zeroButton > a:hover { text-decoration: none; } .lightcoral, .lightcoral a, .fetish.gain, .fetish.gain a { color: lightcoral } /* compare pink for fetish */ .lightgreen, .lightgreen a, .relationship, .relationship a, .rivalry.dec, .rivalry.dec a { color: lightgreen } .lightpink, .lightpink a { color: lightpink } -.lightsalmon, .lightsalmon a, .fetish.inc, .fetish.inc a, .rivalry.inc, .rivalry.inc a { color: lightsalmon } +.lightsalmon, .lightsalmon a, .fetish.inc, .fetish.inc a, .rivalry.inc, .rivalry.inc a, .relationship.dec, .relationship.dec a { color: lightsalmon } .lime, .lime a, .change.positive, .change.positive a, .virginity.loss, .virginity.loss a, .pregnant, .pregnant a { color: lime } /* tight orifices, breast changes, take virginity, not sure on good aliases */ .limegreen, .limegreen a { color: limegreen } /* multiple questionable uses */ .magenta, .magenta a, .devotion.worship, .devotion.worship a { color: magenta } diff --git a/src/uncategorized/arcadeReport.tw b/src/uncategorized/arcadeReport.tw index 8bc8eac2c9aa86045ef0d580e1fc986fc86653c9..45fea6cbbb308f3b956754360c679dd371b2e7a2 100644 --- a/src/uncategorized/arcadeReport.tw +++ b/src/uncategorized/arcadeReport.tw @@ -142,7 +142,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_slave)>> <<= App.SlaveAssignment.rivalries(_slave)>> <br><<include "SA devotion">> <<else>> @@ -151,7 +151,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships(_slave)>> <<run App.SlaveAssignment.rivalries(_slave)>> <<include "SA devotion">> <</silently>> diff --git a/src/uncategorized/brothelReport.tw b/src/uncategorized/brothelReport.tw index 6caa232123ee1d8624040f1bc3ca5010bc1586b5..78e92d763df670a40ca63a23b5fc592ad37d840a 100644 --- a/src/uncategorized/brothelReport.tw +++ b/src/uncategorized/brothelReport.tw @@ -195,7 +195,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_S.Madam)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_S.Madam)>> <<= App.SlaveAssignment.rivalries(_S.Madam)>> <br><<include "SA devotion">> <<else>> @@ -206,7 +206,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs(_S.Madam)>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships(_S.Madam)>> <<run App.SlaveAssignment.rivalries(_S.Madam)>> <<include "SA devotion">> <</silently>> @@ -285,7 +285,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_slave)>> <<= App.SlaveAssignment.rivalries(_slave)>> <br><<include "SA devotion">> <<else>> @@ -297,7 +297,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships(_slave)>> <<run App.SlaveAssignment.rivalries(_slave)>> <<include "SA devotion">> <</silently>> diff --git a/src/uncategorized/cellblockReport.tw b/src/uncategorized/cellblockReport.tw index 2faaf4c034c23044eb5aea051571aa24f591cc4e..bcc54c553443053dda1f0188bf4043f1baa30f06 100644 --- a/src/uncategorized/cellblockReport.tw +++ b/src/uncategorized/cellblockReport.tw @@ -139,7 +139,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs($slaves[$i])>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships($slaves[$i])>> <<= App.SlaveAssignment.rivalries($slaves[$i])>> <br><<include "SA devotion">> <<else>> @@ -150,7 +150,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs($slaves[$i])>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships($slaves[$i])>> <<run App.SlaveAssignment.rivalries($slaves[$i])>> <<include "SA devotion">> <</silently>> @@ -260,7 +260,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_slave)>> <<= App.SlaveAssignment.rivalries(_slave)>> <br><<include "SA devotion">> <<else>> @@ -271,7 +271,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships(_slave)>> <<run App.SlaveAssignment.rivalries(_slave)>> <<include "SA devotion">> <</silently>> diff --git a/src/uncategorized/clubReport.tw b/src/uncategorized/clubReport.tw index 8e70c1dfb320e94ba17a4bb8ff19fc291d7e2548..517d3b01692d4ce6dc42d9e7f798ffc66f3eca27 100644 --- a/src/uncategorized/clubReport.tw +++ b/src/uncategorized/clubReport.tw @@ -120,7 +120,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_S.DJ)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_S.DJ)>> <<= App.SlaveAssignment.rivalries(_S.DJ)>> <br><<include "SA devotion">> <<else>> @@ -131,7 +131,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs(_S.DJ)>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships(_S.DJ)>> <<run App.SlaveAssignment.rivalries(_S.DJ)>> <<include "SA devotion">> <</silently>> @@ -196,7 +196,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_slave)>> <<= App.SlaveAssignment.rivalries(_slave)>> <br><<include "SA devotion">> <<else>> @@ -208,7 +208,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships(_slave)>> <<run App.SlaveAssignment.rivalries(_slave)>> <<include "SA devotion">> <</silently>> diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw index d8e3db36fe100ceca528f63e2703ffb894f77a93..4ec081bb71b6a77a2ea69abfba250d0bb36d651a 100644 --- a/src/uncategorized/dairyReport.tw +++ b/src/uncategorized/dairyReport.tw @@ -302,13 +302,13 @@ /* 000-250-006 */ <span class='slave-name'><<= SlaveFullName(_S.Milkmaid)>></span> is serving as your Milkmaid. <br> - <<= App.SlaveAssignment.choosesOwnClothes($slaves[$i])>> + <<= App.SlaveAssignment.choosesOwnClothes(_S.Milkmaid)>> <<run tired(_S.Milkmaid)>> <<include "SA rules">> <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_S.Milkmaid)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_S.Milkmaid)>> <<= App.SlaveAssignment.rivalries(_S.Milkmaid)>> <br><<include "SA devotion">> <<else>> @@ -318,8 +318,8 @@ <<include "SA rules">> <<include "SA diet">> <<include "SA long term effects">> - <<run App.SlaveAssignment.drugs($slaves[$i])>> - <<include "SA relationships">> + <<run App.SlaveAssignment.drugs(_S.Milkmaid)>> + <<run App.SlaveAssignment.relationships(_S.Milkmaid)>> <<run App.SlaveAssignment.rivalries(_S.Milkmaid)>> <<include "SA devotion">> <</silently>> @@ -414,7 +414,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_slave)>> <<= App.SlaveAssignment.rivalries(_slave)>> <br><<include "SA devotion">> <<else>> @@ -425,7 +425,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships(_slave)>> <<run App.SlaveAssignment.rivalries(_slave)>> <<include "SA devotion">> <</silently>> diff --git a/src/uncategorized/fullReport.tw b/src/uncategorized/fullReport.tw index d149e4e2790c36538e6ccc78294949f845c89308..41c5bc90c6fe4919040d9cb52054c162c6f93821 100644 --- a/src/uncategorized/fullReport.tw +++ b/src/uncategorized/fullReport.tw @@ -69,7 +69,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs($slaves[$i])>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships($slaves[$i])>> <<run App.SlaveAssignment.rivalries($slaves[$i])>> <</silently>> <<else>> @@ -78,7 +78,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs($slaves[$i])>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships($slaves[$i])>> <<= App.SlaveAssignment.rivalries($slaves[$i])>> <br> <</if>> diff --git a/src/uncategorized/masterSuiteReport.tw b/src/uncategorized/masterSuiteReport.tw index 21fcacdcb5ca3364df556a0efd6a3af1454928c9..a4eace5a247b4bfee44aebb6a35af5e23c7589ba 100644 --- a/src/uncategorized/masterSuiteReport.tw +++ b/src/uncategorized/masterSuiteReport.tw @@ -373,7 +373,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_slave)>> <<= App.SlaveAssignment.rivalries(_slave)>> <br><<include "SA devotion">> <<else>> @@ -390,7 +390,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships(_slave)>> <<run App.SlaveAssignment.rivalries(_slave)>> <<include "SA devotion">> <</silently>> diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw index 24ad123486096e4f67362c3b42b3c1f9a213b9ce..3a42696f9ad58336641a5d3ac82f7cb52943db92 100644 --- a/src/uncategorized/saLiveWithHG.tw +++ b/src/uncategorized/saLiveWithHG.tw @@ -1037,7 +1037,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs($slaves[$i])>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships($slaves[$i])>> <<run App.SlaveAssignment.rivalries($slaves[$i])>> <<include "SA devotion">> <</silently>> @@ -1047,7 +1047,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs($slaves[$i])>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships($slaves[$i])>> <<= App.SlaveAssignment.rivalries($slaves[$i])>> <br><<include "SA devotion">> <</if>> diff --git a/src/uncategorized/saRelationships.tw b/src/uncategorized/saRelationships.tw deleted file mode 100644 index db67b0c96e46d3355a15493502617ba4b33cfc37..0000000000000000000000000000000000000000 --- a/src/uncategorized/saRelationships.tw +++ /dev/null @@ -1,972 +0,0 @@ -:: SA relationships [nobr] - -<<setPlayerPronouns>> - -<<if $slaves[$i].fuckdoll == 0>> - <<set _SL = $slaves.length, _SlaveI = $slaves[$i], _SlaveJ = null, _drop = 0>> - <<setLocalPronouns _SlaveI>> - <<if _SlaveI.relationship == 0 && _SlaveI.fetish != "mindbroken">> - <<if (_SlaveI.devotion + _SlaveI.trust > 175) && (random(1,3) == 1)>> - _SlaveI.slaveName is quite devoted to you, and trusts both you and $his place as a slave. Since $he does not have a strong relationship with another slave, - <<if (_SlaveI.sexualQuirk == "romantic")>> - and persistently interprets sex in the most romantic possible terms, $he has decided that $he wants to be yours in $his heart as well as $his <<if _SlaveI.vagina > -1>>pussy<<else>>butthole<</if>>. @@.lightgreen;$He's become emotionally bonded to you!@@ - <<set _SlaveI.relationship = -2>> - <<elseif (_SlaveI.assignment == "be your Concubine")>> - and is your concubine, $he almost inevitably comes to view you as much as a lover as an owner. @@.lightgreen;$He's become emotionally bonded to you!@@ - <<set _SlaveI.relationship = -2>> - <<elseif ($masterSuiteUpgradeLuxury == 2) && (_SlaveI.assignment == "serve in the master suite")>> - and does nothing but eat, sleep, and make love to your other fucktoys, $he slowly loses sight of any distinction between emotional attachment and sexual congress. @@.lightgreen;$He's become an emotional slut!@@ - <<set _SlaveI.relationship = -1>> - <<elseif (_SlaveI.assignment == "please you") || (_SlaveI.assignment == "serve in the master suite")>> - and spends $his days worshipping your <<if $PC.dick != 0>>cock<<if $PC.vagina != -1>> and <</if>><</if>><<if $PC.vagina != -1>>cunt<</if>>, $he begins to focus more and more of $his happiness on how happy you are. @@.lightgreen;$He's become emotionally bonded to you!@@ - <<set _SlaveI.relationship = -2>> - <<elseif (_SlaveI.assignment == "serve the public") || (_SlaveI.assignment == "serve in the club")>> - and $his life is an endless stream of lovers, $he unconsciously loses any sense of emotional attachment outside the intimacy of sex. @@.lightgreen;$He's become an emotional slut!@@ - <<set _SlaveI.relationship = -1>> - <<elseif (_SlaveI.energy > 95) && ((_SlaveI.counter.anal + _SlaveI.counter.vaginal + _SlaveI.counter.oral + _SlaveI.counter.mammary + _SlaveI.counter.penetrative) > ($week - _SlaveI.weekAcquired) * random(20, 30))>> - is a total sex addict, and has a spectacularly promiscuous sexual history, $he begins to think of sex as $his only meaningful emotional connection with people. @@.lightgreen;$He's become an emotional slut!@@ - <<set _SlaveI.relationship = -1>> - <<else>> - and loves you, $he begins to think of you as a $woman might think of $his lover — or spouse. $He knows $he cannot hope for more of a relationship with you than $he has, but $he finds emotional support in serving you nonetheless. @@.lightgreen;$He's become emotionally bonded to you!@@ - <<set _SlaveI.relationship = -2>> - <</if>> - <<elseif _SlaveI.career == "a Futanari Sister" && _SlaveI.rules.relationship == "permissive">> - <<for _j = 0; _j < _SL; _j++>> - <<set _SlaveJ = $slaves[_j]>> - <<setLocalPronouns _SlaveJ 2>> - <<if (_SlaveJ.career == "a Futanari Sister") && _SlaveJ.rules.relationship == "permissive" && (_SlaveJ.relationship == 0) && (_SlaveI.rivalryTarget != _SlaveJ.ID) && (_SlaveJ.ID != _SlaveI.ID) && _SlaveJ.fetish != "mindbroken">> - _SlaveI.slaveName greets _SlaveJ.slaveName with joy. It's not clear whether they ever knew each other during their lives as Futanari Sisters, but it seems that they believe themselves to be in a relationship by simple virtue of having been Sisters. In any case, _SlaveI.slaveName and _SlaveJ.slaveName @@.lightgreen;become inseparable lovers@@ instantly, as though there's no possibility they would do anything else. They're even surprised when other slaves ask them about it; it's as though they're unaware that other possibilities even exist. - <<set _SlaveJ.relationship = 4, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 4, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <</if>> - <</for>> - <<if _j == _SL>> /* gone through the full loop, found no matches, so reset _SlaveJ */ - <<set _SlaveJ = null>> - <</if>> - <<elseif (_SlaveI.origin == "You were acquainted with $him before you were an arcology owner; your rival tried to use $him to manipulate you, but you rescued $him.") && ($rivalryDuration > 20) && !["Intellectual Dependency", "Paternalism", "Racial Supremacism", "Slave Professionalism"].includes($rivalryFS)&& _SlaveI.newGamePlus == 0>> - <<for _j = 0; _j < _SL; _j++>> - <<set _SlaveJ = $slaves[_j]>> - <<setLocalPronouns _SlaveJ 2>> - <<if _SlaveJ.fetish != "mindbroken" && _SlaveJ.prestigeDesc == "You bankrupted and enslaved $him in revenge for $his part in the attack on your arcology by the Daughters of Liberty.">> - _SlaveI.slaveName greets _SlaveJ.slaveName with joy, happy to see $his former owner again. Without any regard to you, they continue their prior relationship. - <<if _SlaveJ.relationship > 0>> - <<set _k = $slaveIndices[_SlaveJ.relationshipTarget]>> - <<if def _k>> - <<set $slaves[_k].relationshipTarget = 0, $slaves[_k].relationship = 0>> - <</if>> - <</if>> - <<set _SlaveJ.relationship = 4, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 4, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <</if>> - <</for>> - <<if _j == _SL>> /* gone through the full loop, found no matches, so reset _SlaveJ */ - <<set _SlaveJ = null>> - <</if>> - <<elseif _SlaveI.rules.relationship != "restrictive">> - <<if _SlaveI.devotion > -90>> - <<if _SlaveI.behavioralFlaw == "none">> - <<set _seed = random(1, 100)>> - <<else>> - <<set _seed = random(1, 80)>> - <</if>> - <<if _seed > 75>> - <<set _resentment = 0>> - <<for _j = 0; _j < _SL; _j++>> - <<set _SlaveJ = $slaves[_j]>> - <<setLocalPronouns _SlaveJ 2>> - <<if (_SlaveJ.ID != _SlaveI.ID) && (_SlaveJ.relationship == 0) && (_SlaveI.rivalryTarget != _SlaveJ.ID) && (_SlaveJ.assignment != "stay confined") && (_SlaveJ.fetish != "mindbroken")>> - <<if (_SlaveJ.ID == $MadamID) && (_SlaveI.assignment == "work in the brothel")>> - <<if _SlaveJ.rules.relationship != "restrictive">> - _SlaveI.slaveName manages to ingratiate $himself with the Madam, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@ - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _SlaveI.devotion < -20>> - _SlaveI.slaveName tries to strike up a friendship with the Madam, _SlaveJ.slaveName, and is @@.gold;punished@@ by _him2 for disrespect. - <<set _SlaveI.trust -= 4>> - <</if>> - <</if>> - <<elseif (_SlaveJ.ID == $djID) && (_SlaveI.assignment == Job.CLUB)>> - <<if _SlaveJ.rules.relationship != "restrictive">> - _SlaveI.slaveName manages to ingratiate $himself with the DJ, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@ - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _SlaveI.devotion < -20>> - _SlaveI.slaveName tries to strike up a friendship with the DJ, _SlaveJ.slaveName, and is @@.gold;punished@@ by _him2 for disrespect. - <<set _SlaveI.trust -= 4>> - <</if>> - <</if>> - <<elseif (_SlaveJ.ID == $MilkmaidID) && (_SlaveI.assignment == "work in the dairy")>> - <<if _SlaveJ.rules.relationship != "restrictive">> - _SlaveI.slaveName manages to ingratiate $himself with the Milkmaid, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@ - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _SlaveI.devotion < -20>> - _SlaveI.slaveName tries to strike up a friendship with the Milkmaid, _SlaveJ.slaveName, and is @@.gold;punished@@ by _him2 for disrespect. - <<set _SlaveI.trust -= 4>> - <</if>> - <</if>> - <<elseif (_SlaveJ.ID == $FarmerID) && (_SlaveI.assignment == "work as a farmhand")>> - <<if _SlaveJ.rules.relationship != "restrictive">> - _SlaveI.slaveName manages to ingratiate $himself with the Farmer, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@ - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _SlaveI.devotion < -20>> - _SlaveI.slaveName tries to strike up a friendship with the Farmer, _SlaveJ.slaveName, and is @@.gold;punished@@ by _him2 for disrespect. - <<set _SlaveI.trust -= 4>> - <</if>> - <</if>> - <<elseif (_SlaveJ.ID == $SchoolteacherID) && (_SlaveI.assignment == "learn in the schoolroom")>> - <<if _SlaveJ.rules.relationship != "restrictive">> - _SlaveI.slaveName manages to ingratiate $himself with the Schoolteacher, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@ - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _SlaveI.devotion < -20>> - _SlaveI.slaveName tries to strike up a friendship with the Schoolteacher, _SlaveJ.slaveName, and is @@.gold;punished@@ by _him2 for disrespect. - <<set _SlaveI.trust -= 4>> - <</if>> - <</if>> - <<elseif (_SlaveJ.ID == $AttendantID) && (_SlaveI.assignment == "rest in the spa")>> - <<if _SlaveJ.rules.relationship != "restrictive">> - _SlaveI.slaveName basks in the affection and care of the spa attendant, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@ - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _SlaveI.devotion < -20>> - _SlaveI.slaveName tries to strike up a friendship with the spa attendant, _SlaveJ.slaveName. _He2 gently @@.hotpink;counsels@@ $him to obey the rules. - <<set _SlaveI.devotion += 1>> - <</if>> - <</if>> - <<elseif (_SlaveJ.ID == $StewardessID) && (_SlaveI.assignment == "work as a servant")>> - <<if _SlaveJ.rules.relationship != "restrictive">> - _SlaveI.slaveName manages to ingratiate $himself with the Stewardess, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@ - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _SlaveI.devotion < -20>> - _SlaveI.slaveName tries to strike up a friendship with the Stewardess, _SlaveJ.slaveName, and is @@.gold;punished@@ by _him2 for disrespect. - <<set _SlaveI.trust -= 4>> - <</if>> - <</if>> - <<elseif (_SlaveJ.ID == $WardenessID) && (_SlaveI.assignment == "be confined in the cellblock")>> - <<if _SlaveJ.rules.relationship != "restrictive">> - _SlaveI.slaveName manages to earn the respect of the Wardeness, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@ - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _SlaveI.devotion < -20>> - _SlaveI.slaveName tries to strike up a friendship with the Wardeness, _SlaveJ.slaveName, and is @@.gold;beaten@@ by _him2 for $his trouble. - <<set _SlaveI.trust -= 5>> - <</if>> - <</if>> - <<elseif (_SlaveJ.ID == $ConcubineID) && (_SlaveI.assignment == "serve in the master suite")>> - <<if _SlaveJ.rules.relationship != "restrictive">> - _SlaveI.slaveName becomes especially close to the Concubine, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@ - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _SlaveI.devotion < -20>> - _SlaveI.slaveName tries to strike up a friendship with the Concubine, _SlaveJ.slaveName, and is gently @@.hotpink;counseled@@ by _him2 that such things are against the rules. - <<set _SlaveI.devotion += 1>> - <</if>> - <</if>> - <<elseif _SlaveJ.assignment == _SlaveI.assignment>> - <<if random(1, 100) > 50>> - <<if _SlaveJ.rules.relationship != "restrictive">> - _SlaveI.slaveName and _SlaveJ.slaveName see a lot of each other - <<if _SlaveI.assignment == "learn in the schoolroom" || _SlaveI.assignment == "take classes">> - in class - <<elseif _SlaveI.assignment == "get treatment in the clinic">> - while being treated - <<elseif _SlaveI.assignment == "be confined in the cellblock">> - while being punished - <<elseif _SlaveI.assignment == "rest">> - in their time off - <<else>> - at work - <</if>> - and @@.lightgreen;strike up a friendship.@@ - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _resentment == 0>> - _SlaveI.slaveName tries to strike up a friendship with _SlaveJ.slaveName and is @@.gold;punished@@ for breaking the rules against such things; $he @@.mediumorchid;resents@@ being castigated for simple sociability. - <<set _SlaveI.devotion -= 2, _SlaveI.trust -= 2, _resentment++>> - <</if>> - <</if>> - <</if>> - <<elseif mutualChildren(_SlaveI, _SlaveJ, $slaves) > 0>> - <<if App.Utils.sexAllowed(_SlaveI, _SlaveJ)>> - <<if _SlaveJ.rules.relationship == "permissive">> - _SlaveI.slaveName and _SlaveJ.slaveName have <<if mutualChildren(_SlaveI, _SlaveJ, $slaves) == 0>>a child<<else>>children<</if>> living in your penthouse, so it's not surprising that their offspring brings them together. They have @@.lightgreen;become friends@@ for their child's sake. - <<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - _SlaveI.slaveName tries to renew $his relationship with _SlaveJ.slaveName and is @@.gold;punished@@ for breaking the rules against such things; $he @@.mediumorchid;resents@@ being prevented from reuniting with _him2. - <<set _SlaveI.devotion -= 2, _SlaveI.trust -= 2>> - <</if>> - <</if>> - <<elseif _SlaveJ.fetish == _SlaveI.fetish>> - <<if (_SlaveI.fetish != "none") && App.Utils.sexAllowed(_SlaveI, _SlaveJ)>> - <<if _SlaveJ.rules.relationship == "permissive">> - _SlaveI.slaveName and _SlaveJ.slaveName share sexual inclinations, so it's only natural that they @@.lightgreen;become friends with benefits.@@ - <<set _SlaveJ.relationship = 3, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 3, _SlaveI.relationshipTarget = _SlaveJ.ID>> - <<break>> - <<else>> - <<if _resentment == 0>> - _SlaveI.slaveName tries to strike up a sexual relationship with _SlaveJ.slaveName and is @@.gold;punished@@ for breaking the rules against such things; $he @@.mediumorchid;resents@@ being prevented from pursuing _him2. - <<set _SlaveI.devotion -= 2, _SlaveI.trust -= 2, _resentment++>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</for>> - <<if _SlaveI.relationshipTarget != _SlaveJ.ID>> - <<set _SlaveJ = null>> - <</if>> - <</if>> /*seed*/ - <</if>> /*devotion*/ - <</if>> - <<set _drop = 1>> - <</if>> - <<if (_SlaveI.relationship > 0)>> - <<set _J = $slaveIndices[_SlaveI.relationshipTarget]>> - <<if def _J>> - <<set _SlaveJ = $slaves[_J], _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveJ.relationship = _SlaveI.relationship>> - <<setLocalPronouns _SlaveJ 2>> - <</if>> - <<if (_SlaveI.relationship > 0) && (_SlaveJ == null)>> - <br>@@.red;_SlaveI.slaveName's relationship was _SlaveI.relationship and relationshipTarget was _SlaveI.relationshipTarget but no slave with that ID was found@@<br> - <<set _SlaveI.relationship = 0, _SlaveI.relationshipTarget = 0>> - <</if>> - <</if>> - <<if (_SlaveI.relationship != 0) && (_drop == 0)>> /% RELATIONSHIP IS NOT 0; NOW ON TO ONGOING RELATIONSHIPS %/ - <<if (_SlaveI.rivalry != 0 && _SlaveJ != null)>> - <<if _SlaveI.rivalryTarget == _SlaveI.relationshipTarget>> - <<set _SlaveJ.rivalry = 0, _SlaveJ.rivalryTarget = 0, _SlaveI.rivalry = 0, _SlaveI.rivalryTarget = 0>> - <</if>> - <</if>> - <<if _SlaveI.fetish == "mindbroken" && _SlaveI.relationship != -3>> - Since $he is mindbroken, $he @@.lightsalmon;can't really maintain@@ any meaningful relationship with - <<if _SlaveJ != null>> - _SlaveJ.slaveName. - <<set _SlaveJ.relationship = 0, _SlaveJ.relationshipTarget = 0>> - <<else>> - you. - <</if>> - <<set _SlaveI.relationship = 0, _SlaveI.relationshipTarget = 0>> - <<elseif _SlaveI.relationship < 0>> - /% Relationship with the PC %/ - <<if _SlaveI.relationship == -1>> - <<if ["be the DJ", "serve in the club", "serve the public", "whore", "work in the brothel"].includes(_SlaveI.assignment)>> - $His endless stream of lovers maintains and satisfies $his emotional reliance on sex. - <<elseif (_SlaveI.assignment == "serve in the master suite") && ($masterSuiteUpgradeLuxury == 2)>> - Forming a part of the pile of copulating bodies in $masterSuiteName satisfies $his voracious sexual appetite. - <<elseif (_SlaveI.energy <= 90)>> - $He is not a complete nymphomaniac and $he doesn't have a constant stream of lovers, so $he has @@.lightsalmon;begun to rely less on sex for emotional support@@ than $he once did. - <<set _SlaveI.relationship = 0>> - <<elseif (_SlaveI.energy >= 90)>> - $He is such a nymphomaniac that even without a steady stream of lovers, $his emotional reliance on promiscuity remains. - <<if (_SlaveI.devotion > 60)>> - $He is @@.mediumorchid;emotionally unfulfilled@@ by $his assignment, since it does not afford $him the validation of massive promiscuity. - <<set _SlaveI.devotion-->> - <</if>> - <<if (_SlaveI.trust > 60)>> - $He is @@.gold;impatient@@ with $his limited field of potential sexual partners, and would prefer to be a publicly available nympho. - <<set _SlaveI.trust-->> - <</if>> - <</if>> - <<elseif _SlaveI.relationship == -2>> - <<if areRelated(_SlaveI, $PC)>> - <<set _PCrelative = relativeTerm(_SlaveI, $PC)>> - $He - <<if _SlaveI.sexualQuirk == "perverted">> - is such a pervert that $he @@.hotpink;enjoys@@ carrying on an incestuous relationship with $his own _PCrelative. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.devotion > 95>> - is so inured to the perversities of slavery that $he @@.hotpink;enjoys@@ carrying on an incestuous relationship with $his own _PCrelative. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.behavioralQuirk == "sinful">> - is torn between sinful delight and deep disgust that $he's carrying on an incestuous relationship with $his own _PCrelative. - <<elseif _SlaveI.devotion > 75>> - is so devoted to you that $he accepts carrying on an incestuous relationship with $his own _PCrelative. - <<elseif _SlaveI.devotion > 50>> - is somewhat @@.mediumorchid;disturbed@@ that $he's carrying on an incestuous relationship with $his own _PCrelative. - <<set _SlaveI.devotion -= 2>> - <<elseif _SlaveI.devotion > 20>> - is @@.mediumorchid;disturbed@@ and @@.gold;scared@@ that $he's carrying on an incestuous relationship with $his own _PCrelative. - <<set _SlaveI.devotion -= 2>> - <<set _SlaveI.trust -= 2>> - <<else>> - is @@.mediumorchid;revolted@@ and @@.gold;scared@@ that $he's carrying on an incestuous relationship with $his own _PCrelative. - <<set _SlaveI.devotion -= 4>> - <<set _SlaveI.trust -= 4>> - <</if>> - <<if _SlaveI.pregKnown == 1>> - <<if _SlaveI.pregSource == -1>> - <<if _SlaveI.sexualQuirk == "perverted">> - $He's even @@.hotpink;aroused@@ by the constant awareness that $his _PCrelative is the parent of the daughter<<if _SlaveI.pregType > 1>>s<</if>> $he's carrying. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.behavioralQuirk == "sinful">> - $His feelings about carrying $his _PCrelative's child<<if _SlaveI.pregType > 1>>ren<</if>> are @@.hotpink;secretly less mixed,@@ though. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.devotion > 95>> - $He occasionally remembers that $he's carrying $his _PCrelative's child<<if _SlaveI.pregType > 1>>ren<</if>>, but does $his best to accept it by not thinking about it. - <<elseif _SlaveI.devotion > 50>> - $He's @@.mediumorchid;disgusted@@ that the bab<<if _SlaveI.pregType > 1>>ies $he's carrying are<<else>>y $he's carrying is<</if>> $his _PCrelative's, though $he tries $his best not to think about it. - <<set _SlaveI.devotion -= 1>> - <<elseif _SlaveI.devotion > 20>> - $He's so @@.mediumorchid;disgusted@@ that the bab<<if _SlaveI.pregType > 1>>ies $he's carrying are<<else>>y $he's carrying is<</if>> $his _PCrelative's that $he often wakes up crying about it. - <<set _SlaveI.devotion -= 2>> - <<else>> - $He's @@.mediumorchid;passionately hateful@@ of you for making $him carry an incestuous pregnancy. - <<set _SlaveI.devotion -= 4>> - <</if>> - <</if>> - <</if>> - <<if $arcologies[0].FSEgyptianRevivalist != "unset">> - Society @@.green;strongly approves@@ of your incestuous relationship, which advances the Egyptian revivalist ideal of slave incest. - <<run repX(2*$FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), "PCRelationships", _SlaveI)>> - <<set $arcologies[0].FSEgyptianRevivalist += 0.1*$FSSingleSlaveRep>> - <<if _SlaveI.bellyPreg >= 1500>> - <<if _SlaveI.pregSource == -1>> - @@.green;The effect is greatly enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. - <<run repX($FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), "PCRelationships", _SlaveI)>> - <<set $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> - <</if>> - <</if>> - <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> - Society @@.green;enjoys@@ your incestuous relationship since incest is currently trendy. - <<run repX(1.5*$FSSingleSlaveRep, "PCRelationships", _SlaveI)>> - <<if _SlaveI.bellyPreg >= 1500>> - <<if _SlaveI.pregSource == -1>> - @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. - <<run repX($FSSingleSlaveRep, "PCRelationships", _SlaveI)>> - <</if>> - <</if>> - <</if>> - <</if>> - <<if (_SlaveI.devotion + _SlaveI.trust < 150)>> - <<if random(1, 100) > 50>> - $He is no longer as devoted to you as $he once was, and has @@.lightsalmon;begun to look elsewhere for emotional support.@@ - <<set _SlaveI.relationship = 0>> - <<elseif (_SlaveI.trust < 75) && (random(1, 100) > 50)>> - $He is no longer as trusting of you as $he once was, and has @@.lightsalmon;begun to look elsewhere for emotional support.@@ - <<set _SlaveI.relationship = 0>> - <</if>> - <</if>> - <<if _SlaveI.relationship == -2>> - <<switch _SlaveI.assignment>> - <<case "be a servant" "be your Concubine" "please you" "serve in the master suite" "work as a servant">> - $He is @@.hotpink;happy@@ 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 @@.hotpink;devotion@@ and @@.mediumaquamarine;trust.@@ - <<set _SlaveI.devotion++, _SlaveI.trust++>> - <<default>> - $His deep love for you produces a slow but steady increase of both @@.hotpink;devotion@@ and @@.mediumaquamarine;trust.@@ - <<set _SlaveI.devotion++, _SlaveI.trust++>> - <</switch>> - <</if>> - <<elseif _SlaveI.relationship == -3>> - <<if areRelated(_SlaveI, $PC) && _SlaveI.fetish != "mindbroken">> - <<set _PCrelative = relativeTerm(_SlaveI, $PC)>> - $He - <<if _SlaveI.sexualQuirk == "perverted">> - is such a pervert that $he @@.hotpink;enjoys@@ carrying on an incestuous relationship with $his own _PCrelative. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.devotion > 95>> - is so inured to the perversities of slavery that $he @@.hotpink;enjoys@@ carrying on an incestuous relationship with $his own _PCrelative. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.behavioralQuirk == "sinful">> - is torn between sinful delight and deep disgust that $he's carrying on an incestuous relationship with $his own _PCrelative. - <<elseif _SlaveI.devotion > 75>> - is so devoted to you that $he accepts carrying on an incestuous relationship with $his own _PCrelative. - <<elseif _SlaveI.devotion > 50>> - is somewhat @@.mediumorchid;disturbed@@ that $he's carrying on an incestuous relationship with $his own _PCrelative. - <<set _SlaveI.devotion -= 2>> - <<elseif _SlaveI.devotion > 20>> - is @@.mediumorchid;disturbed@@ and @@.gold;scared@@ that $he's carrying on an incestuous relationship with $his own _PCrelative. - <<set _SlaveI.devotion -= 2>> - <<set _SlaveI.trust -= 2>> - <<else>> - is @@.mediumorchid;revolted@@ and @@.gold;scared@@ that $he's carrying on an incestuous relationship with $his own _PCrelative. - <<set _SlaveI.devotion -= 4>> - <<set _SlaveI.trust -= 4>> - <</if>> - <<if _SlaveI.pregKnown == 1>> - <<if _SlaveI.pregSource == -1>> - <<if _SlaveI.sexualQuirk == "perverted">> - $He's even @@.hotpink;aroused@@ by the constant awareness that $his _PCrelative is the parent of the daughter<<if _SlaveI.pregType > 1>>s<</if>> $he's carrying. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.behavioralQuirk == "sinful">> - $His feelings about carrying $his _PCrelative's child<<if _SlaveI.pregType > 1>>ren<</if>> are @@.hotpink;secretly less mixed,@@ though. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.devotion > 95>> - $He occasionally remembers that $he's carrying $his _PCrelative's child<<if _SlaveI.pregType > 1>>ren<</if>>, but does $his best to accept it by not thinking about it. - <<elseif _SlaveI.devotion > 50>> - $He's @@.mediumorchid;disgusted@@ that the bab<<if _SlaveI.pregType > 1>>ies $he's carrying are<<else>>y $he's carrying is<</if>> $his _PCrelative's, though $he tries $his best not to think about it. - <<set _SlaveI.devotion -= 1>> - <<elseif _SlaveI.devotion > 20>> - $He's so @@.mediumorchid;disgusted@@ that the bab<<if _SlaveI.pregType > 1>>ies $he's carrying are<<else>>y $he's carrying is<</if>> $his _PCrelative's that $he often wakes up crying about it. - <<set _SlaveI.devotion -= 2>> - <<else>> - $He's @@.mediumorchid;passionately hateful@@ of you for making $him carry an incestuous pregnancy. - <<set _SlaveI.devotion -= 4>> - <</if>> - <</if>> - <</if>> - <<if $arcologies[0].FSEgyptianRevivalist != "unset">> - Society @@.green;strongly approves@@ of your incestuous relationship, which advances the Egyptian revivalist ideal of slave incest. - <<run repX(2*$FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), "PCRelationships", _SlaveI)>> - <<set $arcologies[0].FSEgyptianRevivalist += 0.1*$FSSingleSlaveRep>> - <<if _SlaveI.bellyPreg >= 1500>> - <<if _SlaveI.pregSource == -1>> - @@.green;The effect is greatly enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. - <<run repX($FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), "PCRelationships", _SlaveI)>> - <<set $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> - <</if>> - <</if>> - <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> - Society @@.green;enjoys@@ your incestuous relationship since incest is currently trendy. - <<run repX(1.5*$FSSingleSlaveRep, "PCRelationships", _SlaveI)>> - <<if _SlaveI.bellyPreg >= 1500>> - <<if _SlaveI.pregSource == -1>> - @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. - <<run repX($FSSingleSlaveRep, "PCRelationships", _SlaveI)>> - <</if>> - <</if>> - <</if>> - <</if>> - <<if _SlaveI.relationship == -3>> - <<if _SlaveI.fetish == "mindbroken">> - <<switch _SlaveI.assignment>> - <<case "be a servant" "work as a servant" "serve in the master suite" "please you" "be your Concubine">> - $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 def _SlaveI.kindness>> - <<set _SlaveI.kindness += 2>> - <<else>> - <<set _SlaveI.kindness = 2>> - <</if>> - <<case "whore" "work in the brothel" "serve the public" "serve in the club" "work a glory hole" "be confined in the arcade">> - 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, @@.red;seriously damaging your reputation.@@ - <<run repX(-100, "PCRelationships", _SlaveI)>> - <<default>> - Being your $wife is wasted on $his empty mind. If it weren't for the ring <<if hasAnyArms(_SlaveI)>>around $his finger<<else>>hanging from $his neck<</if>>, nobody would ever realize $he was so close to you. - <</switch>> - <<elseif _SlaveI.devotion+_SlaveI.trust >= 175>> - <<switch _SlaveI.assignment>> - <<case "be a servant" "work as a servant" "serve in the master suite" "please you" "be your Concubine">> - $He is @@.hotpink;happy@@ 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 @@.hotpink;devotion@@ and @@.mediumaquamarine;trust.@@ - <<set _SlaveI.devotion += 2, _SlaveI.trust += 2>> - <<case "whore" "work in the brothel" "serve the public" "serve in the club" "work a glory hole" "be confined in the arcade">> - $His reliance on $his formal relationship to you produces a slight increase of both @@.hotpink;devotion@@ and @@.mediumaquamarine;trust,@@ 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, @@.red;seriously damaging your reputation.@@ - <<set _SlaveI.devotion++, _SlaveI.trust++>> - <<run repX(-100, "PCRelationships", _SlaveI)>> - <<default>> - $His deep reliance on $his formal relationship to you produces a steady increase of both @@.hotpink;devotion@@ and @@.mediumaquamarine;trust.@@ - <<set _SlaveI.devotion++, _SlaveI.trust++>> - <</switch>> - <<elseif _SlaveI.devotion < -20 && _SlaveI.trust > 0>> - <<switch _SlaveI.assignment>> - <<case "be a servant" "work as a servant" "serve in the master suite" "please you" "be your Concubine">> - $He @@.orangered;takes advantage@@ 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, @@.mediumorchid;$his hatred of you.@@ - <<set _SlaveI.devotion -= 7, _SlaveI.trust += 5>> - <<case "whore" "work in the brothel" "serve the public" "serve in the club" "work a glory hole" "be confined in the arcade">> - Not being a pampered fucktoy to you @@.gold;wounds $his expectations as your $wife,@@ but gives $him the space needed to @@.hotpink;begin warming up to you.@@ The public, disregarding $his opinions, is less forgiving of you ordering your slave $wife to fuck random citizens, @@.red;seriously damaging your reputation.@@ - <<set _SlaveI.devotion++, _SlaveI.trust-->> - <<run repX(-100, "PCRelationships", _SlaveI)>> - <<default>> - $He @@.orangered;takes advantage@@ of your kindness, since $he expects you'd never truly harm your $wife. $His insolence allows $him to remain, if not strengthen, @@.mediumorchid;$his hatred of you.@@ - <<set _SlaveI.devotion -= 5, _SlaveI.trust += 3>> - <</switch>> - <<elseif _SlaveI.devotion < -20>> - <<switch _SlaveI.assignment>> - <<case "be a servant" "work as a servant" "serve in the master suite" "please you" "be your Concubine">> - $He is @@.gold;thoroughly terrified@@ by having to remain in a formal relationship with the _womanP $he hates. Being so close to you forces $him to slowly @@.hotpink;accept@@ $his new role as your $wife. - <<set _SlaveI.devotion++, _SlaveI.trust -= 3>> - <<case "whore" "work in the brothel" "serve the public" "serve in the club" "work a glory hole" "be confined in the arcade">> - Being forced into public service only reinforces $his @@.gold;fears@@ and @@.mediumorchid;perceptions@@ of you. If there was any chance of $his thinking you cared, @@.mediumorchid;it's gone now.@@ The public, disregarding $his opinions, is less forgiving of you ordering your slave $wife to fuck random citizens, @@.red;seriously damaging your reputation.@@ - <<set _SlaveI.devotion -= 10, _SlaveI.trust -= 10>> - <<run repX(-100, "PCRelationships", _SlaveI)>> - <<default>> - $He is @@.gold;thoroughly terrified@@ by having to remain in a formal relationship with the _womanP $he hates. Without you nearby to distract $him, $he dwells on $his situation as $his @@.mediumorchid;hate for you grows.@@ - <<set _SlaveI.devotion -= 3, _SlaveI.trust -= 5>> - <</switch>> - <<else>> - <<switch _SlaveI.assignment>> - <<case "be a servant" "work as a servant" "serve in the master suite" "please you" "be your Concubine">> - $He is @@.hotpink;happy@@ 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 @@.hotpink;devotion@@ and @@.mediumaquamarine;trust.@@ - <<set _SlaveI.devotion += 2, _SlaveI.trust += 2>> - <<case "whore" "work in the brothel" "serve the public" "serve in the club" "work a glory hole" "be confined in the arcade">> - $His formal relationship to you produces a steady increase of both @@.hotpink;devotion@@ and @@.mediumaquamarine;trust,@@ 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, @@.red;seriously damaging your reputation.@@ - <<set _SlaveI.devotion++, _SlaveI.trust++>> - <<run repX(-100, "PCRelationships", _SlaveI)>> - <<default>> - $His formal relationship to you produces a steady increase of both @@.hotpink;devotion@@ and @@.mediumaquamarine;trust@@ as $he gradually grows closer to $his spouse. - <<set _SlaveI.devotion++, _SlaveI.trust++>> - <</switch>> - <</if>> - <</if>> - <</if>> - <<elseif _SlaveI.rules.relationship == "restrictive">> - <<if _SlaveJ.rules.relationship == "restrictive">> - Since the rules forbid the relationship between _SlaveI.slaveName and _SlaveJ.slaveName, they are @@.lightsalmon;forced apart.@@ - <<if _SlaveI.relationship > 1>> - <<set _SlaveI.relationship--, _SlaveJ.relationship = _SlaveI.relationship>> - <<else>> - <<set _SlaveJ.relationship = 0, _SlaveJ.relationshipTarget = 0, _SlaveI.relationship = 0, _SlaveI.relationshipTarget = 0>> - <</if>> - <<if _SlaveI.devotion <= 50>> - _SlaveI.slaveName @@.mediumorchid;resents@@ this. - <<set _SlaveI.devotion -= 2>> - <</if>> - <<if _SlaveJ.devotion <= 50>> - _SlaveJ.slaveName @@.mediumorchid;resents@@ this. - <<set _SlaveJ.devotion -= 2>> - <</if>> - <</if>> - <<elseif _SlaveI.rules.relationship == "just friends">> - <<if _SlaveI.relationship > 2 && _SlaveJ.rules.relationship == "restrictive">> - Since the sexual relationship between _SlaveI.slaveName and _SlaveJ.slaveName is against the rules, they are<<if (!hasAnyArms(_SlaveI)) && (!hasAnyArms(_SlaveJ))>>, metaphorically speaking,<</if>> @@.lightsalmon;forced to keep their hands to themselves.@@ - <<set _SlaveJ.relationship = 2, _SlaveI.relationship = 2>> - <<if _SlaveI.devotion <= 50>> - _SlaveI.slaveName @@.mediumorchid;resents@@ this. - <<set _SlaveI.devotion -= 2>> - <</if>> - <<if _SlaveJ.devotion <= 50>> - _SlaveJ.slaveName @@.mediumorchid;resents@@ this. - <<set _SlaveJ.devotion -= 2>> - <</if>> - <</if>> - <<else>> - <<set _seed = 0>> - _SlaveI.slaveName - <<switch _SlaveI.relationship>> - <<case 1>> /% friends %/ - is friends with _SlaveJ.slaveName. - <<if (_SlaveI.devotion + _SlaveI.trust > 170) && (random(1, 2) == 1)>> - $He's very devoted to you, and strongly trusts both you and $his place as a slave. Since $he is just friends with _SlaveJ.slaveName, - <<if _SlaveI.sexualQuirk == "romantic">> - and persistently interprets sex in the most romantic possible terms, $he has decided that $he wants to be yours in $his heart as well as $his <<if _SlaveI.vagina > -1>>pussy<<else>>butthole<</if>>. @@.lightgreen;$He's become emotionally bonded to you!@@ - <<set _SlaveI.relationship = -2>> - <<elseif _SlaveI.energy > 90>> - and is a total sex addict, $he begins to think of sex as $his only meaningful emotional connection with people. @@.lightgreen;$He's become an emotional slut!@@ - <<set _SlaveI.relationship = -1>> - <<else>> - and loves you, $he begins to think of you as a $woman might think of $his lover — or spouse. $He knows $he cannot hope for more of a relationship with you than $he has, but $he finds emotional support in serving you nonetheless. @@.lightgreen;$He's become emotionally bonded to you!@@ - <<set _SlaveI.relationship = -2>> - <</if>> - <<set _SlaveJ.relationship = 0, _SlaveJ.relationshipTarget = 0, _SlaveI.relationshipTarget = 0>> - <<elseif areRelated(_SlaveI, _SlaveJ) && (random(1,100) > 80)>> - They build on their family relationship and become @@.lightgreen;best friends.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif mutualChildren(_SlaveI, _SlaveJ, $slaves) > 0 && (random(1, 100) < (50+(10*mutualChildren(_SlaveI, _SlaveJ, $slaves))))>> - Hoping to benefit of their mutual children, they draw closer together becoming @@.lightgreen;best friends.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif (_SlaveI.energy > 95) && (random(1, 100) > 70)>> - _SlaveI.slaveName obviously lusts after $his friend, and does everything $he can to @@.lightgreen;draw _him2 closer.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif (_SlaveI.attrXX > 85) && (random(1, 100) > 70)>> - <<if (_SlaveJ.vagina > -1) || (_SlaveJ.faceShape != "masculine")>> - _SlaveI.slaveName obviously lusts after $his friend, and does everything $he can to @@.lightgreen;draw _him2 closer.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <</if>> - <<elseif (_SlaveI.attrXY > 85) && (random(1, 100) > 70)>> - <<if (_SlaveJ.balls > 0) || (_SlaveJ.faceShape == "masculine")>> - _SlaveI.slaveName obviously lusts after $his friend, and does everything $he can to @@.lightgreen;draw _him2 closer.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <</if>> - <<elseif (random(1, 100) > 90)>> - They support and reassure each other and become @@.lightgreen;best friends.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <</if>> - <<case 2>> /% best friends %/ - maintains a close friendship with _SlaveJ.slaveName. - <<if _SlaveI.sexualQuirk == "romantic">> - $His romantic bent drives $him to search for a regular sexual partner. - <<set _seed = 10>> - <</if>> - <<if (_SlaveI.devotion + _SlaveI.trust > 95) && (random(1, 2) == 1)>> - _SlaveI.slaveName is totally devoted to you, and implicitly trusts both you and $his place as a slave. Since $his relationship with _SlaveJ.slaveName has not yet turned sexual, and - <<if _SlaveI.sexualQuirk == "romantic">> - $he persistently interprets sex in the most romantic possible terms, $he has decided that $he wants to be yours in $his heart as well as $his <<if _SlaveI.vagina > -1>>pussy<<else>>butthole<</if>>. @@.lightgreen;$He's become emotionally bonded to you!@@ - <<set _SlaveI.relationship = -2>> - <<elseif _SlaveI.energy > 90>> - $he's a total sex addict, $he begins to think of sex as $his only meaningful emotional connection with people. @@.lightgreen;$He's become an emotional slut!@@ - <<set _SlaveI.relationship = -1>> - <<else>> - $he loves you, $he begins to think of you as a $woman might think of $his lover — or spouse. $He knows $he cannot hope for more of a relationship with you than $he has, but $he finds emotional support in serving you nonetheless. @@.lightgreen;$He's become emotionally bonded to you!@@ - <<set _SlaveI.relationship = -2>> - <</if>> - <<set _SlaveJ.relationship = 0, _SlaveJ.relationshipTarget = 0, _SlaveI.relationshipTarget = 0>> - <<elseif mutualChildren(_SlaveI, _SlaveJ, $slaves) > 0 && (random(1, 100) < (50+(10*mutualChildren(_SlaveI, _SlaveJ, $slaves))+_seed))>> - Having already had kids together, their relationship turns sexual once again and they become @@.lightgreen;friends with benefits.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif $seeIncest == 1 && (_SlaveI.energy > 95) && areRelated(_SlaveI, _SlaveJ) && (random(1,100) > (90-_seed))>> - Driven by nymphomania to attempt to have sex with everyone, _SlaveI.slaveName successfully seduces _SlaveJ.slaveName and they become @@.lightgreen;friends with benefits.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif $seeIncest == 1 && (_SlaveI.sexualQuirk == "perverted") && areRelated(_SlaveI, _SlaveJ) && (random(1,100) > (80-_seed))>> - Reveling in the taboo nature of $his attraction to _SlaveJ.slaveName, _SlaveI.slaveName successfully seduces _him2 and they become @@.lightgreen;friends with benefits.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif $seeIncest == 1 && (_SlaveI.behavioralQuirk == "sinful") && areRelated(_SlaveI, _SlaveJ) && (random(1,100) > (80-_seed))>> - Aroused by the chance to commit the sin of incest, _SlaveI.slaveName successfully seduces _SlaveJ.slaveName and they become @@.lightgreen;friends with benefits.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif (_SlaveI.energy > 95) && (random(1, 100) > (80 - _seed))>> - _SlaveI.slaveName successfully seduces _SlaveJ.slaveName and they become @@.lightgreen;friends with benefits.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif random(1, 100) > (100 - _seed) - (0.2 * _SlaveI.attrXX)>> - <<if (_SlaveJ.vagina > -1) || (_SlaveJ.faceShape != "masculine")>> - _SlaveI.slaveName successfully seduces _SlaveJ.slaveName and they become @@.lightgreen;friends with benefits.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <</if>> - <<elseif random(1, 100) > (100 - _seed) - (0.2 * _SlaveI.attrXY)>> - <<if (_SlaveJ.balls > 0) || (_SlaveJ.faceShape == "masculine")>> - _SlaveI.slaveName successfully seduces _SlaveJ.slaveName and they become @@.lightgreen;friends with benefits.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <</if>> - <<elseif $seeIncest == 1 && areRelated(_SlaveI, _SlaveJ)>> - <<if random(1,100) > (95-_seed)>> - Eventually, they happen to be together and horny, and find themselves fucking without thinking. They have become incestuous @@.lightgreen;friends with benefits.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <</if>> - <<elseif (random(1, 100) > (95 - _seed))>> - <<if (_SlaveJ.vagina != -1) && (_SlaveI.behavioralFlaw == "hates women") && (random(1, 2) == 1)>> - Despite _SlaveI.slaveName's dislike of pussy, - <<elseif ((_SlaveJ.balls > 0) || (_SlaveJ.faceShape == "masculine")) && (_SlaveI.behavioralFlaw == "hates men") && (random(1, 2) == 1)>> - Despite _SlaveI.slaveName's distaste for cock, - <<else>> - Living in an atmosphere of omnipresent sexuality, - <</if>> - they fuck in a weak moment and find themselves becoming @@.lightgreen;friends with benefits.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <</if>> - <<case 3>> /% FWB %/ - keeps up a sexual friendship with _SlaveJ.slaveName. - <<if _SlaveI.sexualQuirk == "romantic">> - $His romantic bent drives $him to do $his best to advance $his relationship to an emotional level. - <<set _seed = 10>> - <</if>> - <<if $seeIncest == 1 && _SlaveI.energy > 95 && areRelated(_SlaveI, _SlaveJ) && (random(1,100) > (90-_seed))>> - $He's such a desperate nympho that constant incest is nothing to $him. $He develops real feelings for _SlaveJ.slaveName as a romantic partner. Their relationship becomes @@.lightgreen;romantically emotional@@ as well as physical and familial. - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif $seeIncest == 1 && (_SlaveI.sexualQuirk == "perverted") && areRelated(_SlaveI, _SlaveJ) && (random(1,100) > (80-_seed))>> - Reveling in the taboo nature of $his sexual relationship with _SlaveJ.slaveName, $he not only enjoys _SlaveJ.slaveName's body, but looks after _his2 pleasure, too. Their relationship becomes @@.lightgreen;romantically emotional@@ as well as physical and familial. - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif $seeIncest == 1 && (_SlaveI.behavioralQuirk == "sinful") && areRelated(_SlaveI, _SlaveJ) && (random(1,100) > (80-_seed))>> - $He gets deep, perverse satisfaction by constant commission of the sin of incest, which is extreme enough to appease even $his appetite for transgression. $His incestuous relationship becomes @@.lightgreen;romantically emotional@@ as well as physical and familial. - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif mutualChildren(_SlaveI, _SlaveJ, $slaves) > 0 && (random(1, 100) < (50+(10*mutualChildren(_SlaveI, _SlaveJ, $slaves))+_seed))>> - Between their children and common sexual flings, they begin seeing each other as a traditional couple. Their relationship becomes @@.lightgreen;strongly emotional@@ as well as physical. - <<if _SlaveI.pregSource == _SlaveJ.ID && _SlaveJ.pregSource == _SlaveI.ID && _SlaveI.pregKnown == 1 && _SlaveJ.pregKnown == 1>> - Not very surprising, since they both have the other's child growing in their womb. - <<elseif _SlaveI.pregSource == _SlaveJ.ID && _SlaveI.pregKnown == 1>> - Not very surprising, since _SlaveI.slaveName is carrying another of _SlaveJ.slaveName's children. - <<elseif _SlaveJ.pregSource == _SlaveI.ID && _SlaveJ.pregKnown == 1>> - Not very surprising, since _SlaveJ.slaveName is carrying another of _SlaveI.slaveName's children. - <</if>> - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif (_SlaveI.energy > 95) && (random(1, 100) > (80 - _seed))>> - $He not only enjoys _SlaveJ.slaveName's body, but looks after _his2 pleasure, too. Without meaning it to, their relationship becomes @@.lightgreen;strongly emotional@@ as well as physical. - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <<elseif random(1, 100) > (100 - _seed) - (0.2 * _SlaveI.attrXX)>> - <<if (_SlaveJ.vagina > -1) || (_SlaveJ.faceShape != "masculine")>> - $He not only enjoys _SlaveJ.slaveName's body, but looks after _his2 pleasure, too. Without meaning it to, their relationship becomes @@.lightgreen;strongly emotional@@ as well as physical. - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <</if>> - <<elseif random(1, 100) > (100 - _seed) - (0.2 * _SlaveI.attrXY)>> - <<if (_SlaveJ.balls > 0) || (_SlaveJ.faceShape == "masculine")>> - $He not only enjoys _SlaveJ.slaveName's body, but looks after _his2 pleasure, too. Without meaning it to, their relationship becomes @@.lightgreen;strongly emotional@@ as well as physical. - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <</if>> - <<elseif (random(1, 100) > (95 - _seed))>> - They've spent enough time looking after each other's sexual and emotional needs that their relationship has become @@.lightgreen;very strong.@@ - <<set _SlaveI.relationship++, _SlaveJ.relationship = _SlaveI.relationship>> - <</if>> - <<case 4>> /% lovers %/ - and _SlaveJ.slaveName are lovers. - <<default>> /% slave wives %/ - has a slave _wife2, _SlaveJ.slaveName. - <<if $arcologies[0].FSChattelReligionist != "unset">> - Society @@.green;approves@@ of their marriage, which advances the slave sacrament. - <<set $arcologies[0].FSChattelReligionist += 0.05 * $FSSingleSlaveRep>> - <<run repX($FSSingleSlaveRep * ($arcologies[0].FSChattelReligionist / $FSLockinLevel), "SlaveRelationships", _SlaveI)>> - <</if>> - <</switch>> - <<if _SlaveI.relationship > 0>> /* catch should $he change $his relationship status */ - <<if _SlaveI.devotion <= 95>> - <<if _SlaveI.devotion != _SlaveJ.devotion>> - _SlaveI.slaveName absorbs <<if _SlaveI.relationship == 1>>a touch of $his friend<<elseif _SlaveI.relationship == 2>>a little of $his best friend<<elseif _SlaveI.relationship == 3>>some of $his close friend<<elseif _SlaveI.relationship == 4>>a lot of $his lover<<else>>much of $his _wife2<</if>>'s - <<if _SlaveI.devotion > _SlaveJ.devotion>> - @@.mediumorchid;<<if _SlaveJ.devotion > 50>>remaining doubts about you<<elseif _SlaveJ.devotion > 20>>remaining hesitations about sexual slavery<<elseif _SlaveJ.devotion >= -20>>unhappiness about being a sex slave<<else>>anger at being a slave<</if>>.@@ - <<else>> - @@.hotpink;<<if _SlaveJ.devotion > 50>>love for you<<elseif _SlaveJ.devotion > 20>>acceptance of sexual slavery<<elseif _SlaveJ.devotion >= -20>>submission to the reality of being a sex slave<<else>>unwillingness to immediately rebel<</if>>.@@ - <</if>> - <<set _SlaveI.devotion -= Math.trunc((_SlaveI.devotion - _SlaveJ.devotion) * (0.1 * _SlaveI.relationship))>> - <</if>> - <<elseif _SlaveJ.devotion <= 95>> - $He's so devoted to you that $he's unaffected by _SlaveJ.slaveName's less abject submission. - <</if>> - <<if _SlaveI.trust <= 95>> - _SlaveI.slaveName - <<if _SlaveI.trust < -20>> - cares for _SlaveJ.slaveName and is @@.gold;terrified@@ of what you might do to _him2 if either of them misbehave. $He @@.hotpink;does $his best@@ to avoid that. - <<set _SlaveI.trust -= _SlaveI.relationship, _SlaveI.devotion += _SlaveI.relationship>> - <<else>> - @@.mediumaquamarine;trusts you@@ - <<if _SlaveI.relationship <= 2>> - a little more for allowing $him to have a friend. - <<elseif _SlaveI.relationship == 3>> - for letting $him have a fuckbuddy. - <<elseif _SlaveI.relationship == 4>> - for permitting $him and $his lover to be together. - <<else>> - for giving $him a _wife2. - <</if>> - <<set _SlaveI.trust += _SlaveI.relationship>> - <</if>> - <<elseif _SlaveI.devotion > 95 && _SlaveI.relationship > 4>> - $He feels <<if $arcologies[0].FSChattelReligionist != "unset">>blessed with<<else>>$he has<</if>> a truly good life as your slave. - <</if>> - <</if>> - <</if>> - <</if>> - /% FWB, lovers, slave wives %/ - <<if _SlaveI.relationship > 2>> - <<set _relation = areRelated(_SlaveI, _SlaveJ) ? _SlaveJ : 0>> - <<set _relationType = relativeTerm(_SlaveI, _SlaveJ)>> - <<if _relation != 0>> - _SlaveI.slaveName - <<if _SlaveI.origin == "$He offered $himself to you for enslavement hoping you would preserve $his incestuous relationship with $his sibling." || _SlaveI.origin == "$He offered to become your slave to protect $his incestuous relationship.">> - is @@.hotpink;grateful@@ and @@.mediumaquamarine;trusting@@ towards you for protecting $him in $his long-standing incestuous relationship. - <<set _SlaveI.devotion += 2>> - <<set _SlaveI.trust += 2>> - <<elseif _SlaveI.sexualQuirk == "perverted">> - is such a pervert that $he @@.hotpink;enjoys@@ carrying on an incestuous relationship with $his own _relationType. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.devotion > 95>> - is so inured to the perversities of slavery that $he @@.hotpink;enjoys@@ carrying on an incestuous relationship with $his own _relationType. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.behavioralQuirk == "sinful">> - is torn between sinful delight and deep disgust that $he's carrying on an incestuous relationship with $his own _relationType. - <<elseif _SlaveI.devotion > 75>> - is so devoted to you that $he accepts carrying on an incestuous relationship with $his own _relationType. - <<elseif _SlaveI.devotion > 50>> - is somewhat @@.mediumorchid;disturbed@@ that $he's carrying on an incestuous relationship with $his own _relationType. - <<set _SlaveI.devotion -= 2>> - <<elseif _SlaveI.devotion > 20>> - is @@.mediumorchid;disturbed@@ and @@.gold;scared@@ that $he's carrying on an incestuous relationship with $his own _relationType. - <<set _SlaveI.devotion -= 2>> - <<set _SlaveI.trust -= 2>> - <<else>> - is @@.mediumorchid;revolted@@ and @@.gold;scared@@ that $he's carrying on an incestuous relationship with $his own _relationType. - <<set _SlaveI.devotion -= 4>> - <<set _SlaveI.trust -= 4>> - <</if>> - <<if _SlaveI.pregKnown == 1 && _SlaveI.pregSource == _relation.ID>> - <<if _SlaveI.origin == "$He offered $himself to you for enslavement hoping you would preserve $his incestuous relationship with $his sibling." || _SlaveI.origin == "$He offered to become your slave to protect $his incestuous relationship.">> - $He's @@.hotpink;overjoyed@@ to be carrying $his _relationType's child<<if _SlaveI.pregType > 1>>ren<</if>>. - <<set _SlaveI.devotion += 2>> - <<elseif _SlaveI.sexualQuirk == "perverted">> - $He's even @@.hotpink;aroused@@ by the constant awareness that $his _relationType is the parent of the daughter<<if _SlaveI.pregType > 1>>s<</if>> $he's carrying. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.behavioralQuirk == "sinful">> - $His feelings about carrying $his _relationType's child<<if _SlaveI.pregType > 1>>ren<</if>> are @@.hotpink;secretly less mixed,@@ though. - <<set _SlaveI.devotion += 1>> - <<elseif _SlaveI.devotion > 95>> - $He occasionally remembers that $he's carrying $his _relationType's child<<if _SlaveI.pregType > 1>>ren<</if>>, but does $his best to accept it by not thinking about it. - <<elseif _SlaveI.devotion > 50>> - $He's @@.mediumorchid;disgusted@@ that the bab<<if _SlaveI.pregType > 1>>ies $he's carrying are<<else>>y $he's carrying is<</if>> $his _relationType's, though $he tries $his best not to think about it. - <<set _SlaveI.devotion -= 1>> - <<elseif _SlaveI.devotion > 20>> - $He's so @@.mediumorchid;disgusted@@ that the bab<<if _SlaveI.pregType > 1>>ies $he's carrying are<<else>>y $he's carrying is<</if>> $his _relationType's that $he often wakes up crying about it. - <<set _SlaveI.devotion -= 2>> - <<else>> - $He's @@.mediumorchid;passionately hateful@@ of you for making $him carry an incestuous pregnancy. - <<set _SlaveI.devotion -= 4>> - <</if>> - <</if>> - <<if $arcologies[0].FSEgyptianRevivalist != "unset">> - Society @@.green;strongly approves@@ of their incestuous relationship, which advances the Egyptian revivalist ideal of slave incest. - <<run repX(2*$FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), "SlaveRelationships", _SlaveI)>> - <<set $arcologies[0].FSEgyptianRevivalist += 0.1*$FSSingleSlaveRep>> - <<if _SlaveI.bellyPreg >= 1500 && _SlaveI.pregSource == _relation.ID>> - @@.green;The effect is greatly enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. - <<run repX($FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), "SlaveRelationships", _SlaveI)>> - <<set $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> - <</if>> - <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> - Society @@.green;enjoys@@ their incestuous relationship since incest is currently trendy. - <<run repX(1.5*$FSSingleSlaveRep, "SlaveRelationships", _SlaveI)>> - <<if _SlaveI.bellyPreg >= 1500 && _SlaveI.pregSource == _relation.ID>> - @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. - <<run repX($FSSingleSlaveRep, "SlaveRelationships", _SlaveI)>> - <</if>> - <</if>> - <</if>> - - <<if App.Utils.sexAllowed(_SlaveI, _SlaveJ)>> - <<if (_SlaveI.sexualQuirk == "size queen") && (canPenetrate(_SlaveJ))>> - <<if _SlaveJ.dick > 5>> - $He's @@.hotpink;very happy@@ with $his romantic status, since it means $he regularly gets monster cock. - <<if ((_SlaveI.anus > 0) && (_SlaveI.anus < 3))>> - $He's such a size queen that $he takes it up $his ass as often as $he can bear it, despite $his poor anus not being used to such abuse. This @@.lime;stretches out $his sphincter.@@ - <<set _SlaveI.anus++>> - <</if>> - For _his2 part, _SlaveJ.slaveName @@.hotpink;can barely believe _his2 luck,@@ their sex life is so good. - <<set _SlaveI.devotion += 2, _SlaveJ.devotion += 2>> - <<elseif _SlaveJ.dick > 4>> - $He @@.hotpink;quite likes@@ being in a sexual relationship with a slave who has such an impressive dick. - <<if ((_SlaveI.anus > 0) && (_SlaveI.anus < 2))>> - $He's such a size queen that $he takes it up $his ass as often as $he can bear it, despite $his tight butt not being used to such abuse. This @@.lime;stretches out $his sphincter.@@ - <<set _SlaveI.anus++>> - <</if>> - For _his2 part, _SlaveJ.slaveName @@.hotpink;enjoys@@ the benefits of having a lover so interested in _his2 junk. - <<set _SlaveI.devotion++, _SlaveJ.devotion++>> - <<elseif _SlaveJ.dick > 3>> - _SlaveI.slaveName @@.hotpink;certainly doesn't mind@@ having reliable access to such a nice big dick. For _his2 part, _SlaveJ.slaveName @@.hotpink;likes@@ having a lover who finds _his2 penis appealing. - <<set _SlaveI.devotion++, _SlaveJ.devotion++>> - <</if>> - <</if>> - - <<if (_SlaveI.energy <= 90)>> - <<if (_SlaveJ.energy > 95)>> - _SlaveJ.slaveName is such a sex addict that _he2 drags _SlaveI.slaveName along with _him2 in their enthusiastic sex life, @@.green;slowly improving $his sex drive.@@ - <<set _SlaveI.energy += 3>> - <<elseif (_SlaveJ.fetish == _SlaveI.fetish) && (_SlaveJ.fetishKnown == 1) && (_SlaveI.fetishKnown == 1)>> - _SlaveJ.slaveName and _SlaveI.slaveName enjoy sharing their sexual fetishes so much it @@.green;improves their sex drives@@ in proportion to the strength of their kinks. - <<set _SlaveI.energy += 1 + Math.trunc(_SlaveI.fetishStrength / 30)>> - <<elseif (_SlaveI.attrXX > 65) && (_SlaveI.attrKnown == 1) && ((_SlaveJ.vagina > -1) || (_SlaveJ.face > 0))>> - _SlaveI.slaveName is very much attracted to _SlaveJ.slaveName, and their fulfilling sexual relationship @@.green;gradually improves _SlaveI.slaveName's sex drive.@@ - <<set _SlaveI.energy++>> - <<elseif (_SlaveI.attrXY > 65) && (_SlaveI.attrKnown == 1) && (_SlaveJ.dick > 0)>> - _SlaveI.slaveName enjoys _SlaveJ.slaveName and _his2 cock, and their fulfilling sexual relationship @@.green;gradually improves _SlaveI.slaveName's sex drive.@@ - <<set _SlaveI.energy++>> - <</if>> - <</if>> - <<if (_SlaveI.attrKnown == 1)>> - <<if (_SlaveI.attrXX <= 95) && (random(1, 100) < (_SlaveI.relationship * 5)) && ((_SlaveJ.vagina > -1) || (_SlaveJ.faceShape != "masculine"))>> - After finding comfort with a feminine lover, _SlaveI.slaveName begins to experience more attraction to women. - <<set _SlaveI.attrXX += 2>> - <</if>> - <<if (_SlaveI.attrXY <= 95) && (random(1, 100) < (_SlaveI.relationship * 5)) && ((_SlaveJ.balls > 0) || (_SlaveJ.faceShape == "masculine"))>> - After growing close to a lover with a dick, _SlaveI.slaveName begins to experience more attraction to men. - <<set _SlaveI.attrXY += 2>> - <</if>> - <</if>> - <<if ((_SlaveJ.fetish != "none") && (_SlaveJ.fetish != "mindbroken")) && (_SlaveI.fetishStrength <= 95) && (_SlaveJ.fetish != _SlaveI.fetish) && (fetishChangeChance(_SlaveI) > (random(0, 100) - (_SlaveI.relationship * 5)))>> - <<switch _SlaveJ.fetish>> - <<case "boobs">> - After experiencing _SlaveJ.slaveName's love of breasts, both _his2 own and _SlaveI.slaveName's, _SlaveI.slaveName happily joins _him2 as a @@.lightcoral;boob fanatic.@@ - <<set _SlaveI.fetish = "boobs", _SlaveI.fetishKnown = 1, _SlaveI.fetishStrength = 65>> - <<case "buttslut">> - _SlaveJ.slaveName begs _SlaveI.slaveName to fuck _his2 ass so many times that _SlaveI.slaveName reconsiders $his stance on buttsex. $He becomes just as much of an @@.lightcoral;anal slut@@ as _SlaveJ.slaveName. - <<set _SlaveI.fetish = "buttslut", _SlaveI.fetishKnown = 1, _SlaveI.fetishStrength = 65>> - <<case "cumslut">> - After sharing blowjobs with _SlaveJ.slaveName enough times, _SlaveI.slaveName develops an @@.lightcoral;oral fixation@@ of $his own. - <<set _SlaveI.fetish = "cumslut", _SlaveI.fetishKnown = 1, _SlaveI.fetishStrength = 65>> - <<case "submissive">> - <<if (_SlaveI.fetish != "dom")>> - _SlaveJ.slaveName begs _SlaveI.slaveName to dominate _him2 so many times that _SlaveI.slaveName gets used to domination, and finds $he likes it. $He becomes just as much of a @@.lightcoral;sexual dominant@@ as a slave can be. - <<set _SlaveI.fetish = "dom", _SlaveI.fetishKnown = 1, _SlaveI.fetishStrength = 65>> - <</if>> - <<case "dom">> - <<if (_SlaveI.fetish != "submissive")>> - _SlaveJ.slaveName holds _SlaveI.slaveName down and fucks $him so many times that _SlaveI.slaveName starts to get off on being used. $He becomes a true @@.lightcoral;sexual submissive,@@ and loves _SlaveJ.slaveName all the more for dominating $him. - <<set _SlaveI.fetish = "submissive", _SlaveI.fetishKnown = 1, _SlaveI.fetishStrength = 65>> - <</if>> - <<case "masochist">> - <<if (_SlaveI.fetish != "sadist")>> - _SlaveJ.slaveName begs _SlaveI.slaveName to hurt _him2 so many times that _SlaveI.slaveName gets used to sadism, and finds $he likes it. $He becomes just as much of an @@.lightcoral;sexual sadist@@ as a slave can be. - <<set _SlaveI.fetish = "sadist", _SlaveI.fetishKnown = 1, _SlaveI.fetishStrength = 65>> - <</if>> - <<case "sadist">> - <<if (_SlaveI.fetish != "masochist")>> - _SlaveJ.slaveName hits _SlaveI.slaveName during sex so often that _SlaveI.slaveName starts to get off on being beaten. $He becomes a true @@.lightcoral;masochist,@@ and loves _SlaveJ.slaveName all the more for abusing $him. - <<set _SlaveI.fetish = "masochist", _SlaveI.fetishKnown = 1, _SlaveI.fetishStrength = 65>> - <</if>> - <<case "humiliation">> - _SlaveJ.slaveName begs _SlaveI.slaveName to humiliate _him2 sexually so many times that _SlaveI.slaveName can't help but be embarrassed by all the public sex, $himself. $He gets off on the @@.lightcoral;humiliation@@ with _SlaveJ.slaveName. - <<set _SlaveI.fetish = "humiliation", _SlaveI.fetishKnown = 1, _SlaveI.fetishStrength = 65>> - <<case "pregnancy">> - _SlaveJ.slaveName shares _his2 hopes and dreams of pregnancy and children with _SlaveI.slaveName all the time, and _SlaveI.slaveName can't help but feel $his @@.lightcoral;biological clock@@ tick in time with _SlaveJ.slaveName's. - <<set _SlaveI.fetish = "pregnancy", _SlaveI.fetishKnown = 1, _SlaveI.fetishStrength = 65>> - <</switch>> - <</if>> - <<else>> - /* lovers not allowed to have sex...that's just mean */ - $He's @@.mediumorchid;frustrated@@ because $he's not allowed to fuck _SlaveJ.slaveName - <<set _SlaveI.devotion-->> - <<if disobedience(_SlaveI) + 5 > random(0,100)>> - and defies your rules, for which $he is @@.yellow;severely punished.@@ - <<set _SlaveI.trust -= 3>> - <<else>> - but @@.aquamarine;trusts@@ that you know best. - <<set _SlaveI.trust++>> - <</if>> - <<if _SlaveI.relationship < 5 && (jsRandom(0, 100) > 90)>> - Having been chaste for some time, _SlaveI.slaveName and _SlaveJ.slaveName find themselves less passionate about each other, and have gone back to being just @@.lightgreen;friends.@@ They both @@.mediumorchid;regret@@ the loss of intimacy. - <<set _SlaveI.relationship = 1, _SlaveJ.relationship = 1, _SlaveI.devotion--, _SlaveJ.devotion-->> - <</if>> - <</if>> - - <<if (_SlaveJ.actualAge - _SlaveI.actualAge > 10) && (_SlaveI.relationship >= 4) && (random(1,300) > (_SlaveI.intelligence) + (_SlaveJ.intelligence)) && (_SlaveJ.devotion > 75) && (_SlaveJ.trust > 50) && (_SlaveJ.intelligence+_SlaveJ.intelligenceImplant > 15) && (_SlaveJ.intelligenceImplant >= 15) && ((_SlaveI.devotion > 20) || ((_SlaveI.devotion >= -20) && (_SlaveI.trust < -20)) || (_SlaveI.trust > -10))>> - <<if (_SlaveJ.skill.oral > _SlaveI.skill.oral) || ((_SlaveJ.skill.anal > _SlaveI.skill.anal) && (_SlaveI.anus > 0)) || ((_SlaveJ.skill.vaginal > _SlaveI.skill.vaginal) && (_SlaveI.vagina > 0) && (_SlaveJ.vagina > 0)) || (_SlaveJ.trust > _SlaveI.trust)>> - _SlaveI.slaveName's <<if _SlaveI.relationship >= 5>>_wife2<<else>>lover<</if>> is older, more experienced, and - <<if (_SlaveJ.skill.oral > _SlaveI.skill.oral)>> - better at blowjobs than $he is. They are such good slaves that the senior _girl2 serves as a mentor to the junior, improving $his oral skills. - <<= SkillIncrease.Oral(_SlaveI, 5)>> - <<elseif (_SlaveJ.skill.anal > _SlaveI.skill.anal) && (_SlaveI.anus > 0)>> - better at taking a buttfuck than $he is, and they are such good slaves that the senior _girl2 serves as a mentor to the junior, improving $his anal skills. - <<= SkillIncrease.Anal(_SlaveI, 5)>> - <<elseif (_SlaveJ.skill.vaginal > _SlaveI.skill.vaginal) && (_SlaveI.vagina > 0) && (_SlaveJ.vagina > 0)>> - a better lover than $he is, and they are such good slaves that the senior _girl2 serves as a mentor to the junior, improving $his vaginal skills. - <<= SkillIncrease.Vaginal(_SlaveI, 5)>> - <<elseif (_SlaveJ.trust > _SlaveI.trust)>> - a better slave than $he is, and they are such obedient slaves that the senior _girl2 serves as a mentor to the junior, @@.mediumaquamarine;improving $his trust.@@ - <<set _SlaveI.trust += 11>> - <<else>> - a more devoted slave than $he is; since they are such obedient slaves, the senior _girl2 serves as a mentor to the junior, @@.mediumaquamarine;teaching $him to better serve you.@@ - <<set _SlaveI.devotion += 2>> - <</if>> - <</if>> - <</if>> - <</if>> /% CLOSES RELATIONSHIP CHECK FOR LONG TERM RELATIONSHIP EFFECTS %/ - /% FAMILY FEELINGS %/ - - <<if totalRelatives(_SlaveI) > 0 && _SlaveI.trust <= 95>> - <<set _relatives = $slaves.filter((s) => areRelated(_SlaveI, s))>> - <<for _j = 0; _j < _relatives.length; _j++>> - <<setLocalPronouns _relatives[_j] 2>> - <<if _SlaveI.trust < -20>> - <<if _SlaveI.rivalryTarget != _relatives[_j].ID>> - <<if isParentP(_relatives[_j], _SlaveI)>> - _SlaveI.slaveName is @@.gold;agonizingly aware@@ that $his child _relatives[_j].slaveName is also your slave and might suffer if either of them angers you, and @@.hotpink;does $his best@@ to protect _him2. - <<set _SlaveI.trust -= 2, _SlaveI.devotion += 6>> - <<else>> - _SlaveI.slaveName is @@.gold;painfully conscious@@ that $his <<print relativeTerm(_SlaveI, _relatives[_j])>> _relatives[_j].slaveName is also your slave and might suffer if either of them displeases you, and @@.hotpink;tries to obey@@ as best $he can. - <<set _SlaveI.trust -= 1, _SlaveI.devotion += 3>> - <</if>> - <</if>> - <<else>> - _SlaveI.slaveName knows that $his <<print relativeTerm(_SlaveI, _relatives[_j])>> _relatives[_j].slaveName - <<if _relatives[_j].devotion > 50>> - loves being your sex slave, and is @@.hotpink;happy@@ for _him2. - <<set _SlaveI.devotion += 4>> - <<elseif (_relatives[_j].devotion > 20) || (_relatives[_j].trust < -20)>> - is an obedient sex slave, and hopes _he2'll avoid punishment. - <<else>> - hates being a sex slave, and is @@.gold;afraid@@ for _him2. - <<set _SlaveI.trust -= 1>> - <</if>> - <</if>> - <</for>> - <</if>> - - <<set $slaves[$i] = _SlaveI>> - <<if _SlaveJ != null>> - <<set $slaves[_J] = _SlaveJ>> - <</if>> -<</if>> /% CLOSES FUCKDOLL CHECK %/ diff --git a/src/uncategorized/spaReport.tw b/src/uncategorized/spaReport.tw index 2f9c724ee5a0bdaf6b659e15944b76ee54bc7b50..1d79263d41a5cf80c813d7f9957258b327837d7d 100644 --- a/src/uncategorized/spaReport.tw +++ b/src/uncategorized/spaReport.tw @@ -235,7 +235,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_S.Attendant)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_S.Attendant)>> <<= App.SlaveAssignment.rivalries(_S.Attendant)>> <br><<include "SA devotion">> <<else>> @@ -246,7 +246,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs(_S.Attendant)>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships(_S.Attendant)>> <<run App.SlaveAssignment.rivalries(_S.Attendant)>> <<include "SA devotion">> <</silently>> @@ -343,7 +343,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<= App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<= App.SlaveAssignment.relationships(_slave)>> <<= App.SlaveAssignment.rivalries(_slave)>> <br><<include "SA devotion">> <<else>> @@ -355,7 +355,7 @@ <<include "SA diet">> <<include "SA long term effects">> <<run App.SlaveAssignment.drugs(_slave)>> - <<include "SA relationships">> + <<run App.SlaveAssignment.relationships(_slave)>> <<run App.SlaveAssignment.rivalries(_slave)>> <<include "SA devotion">> <</silently>>