diff --git a/src/endWeek/saRules.js b/src/endWeek/saRules.js new file mode 100644 index 0000000000000000000000000000000000000000..da9886cd05032f1218f85322e7b64fce1ad6360e --- /dev/null +++ b/src/endWeek/saRules.js @@ -0,0 +1,2619 @@ +window.saRules = (function() { + "use strict"; + + const + V = State.variables, + PC = V.PC, + energy = V.freeSexualEnergy, + averageDick = V.averageDick, + slaves = V.slaves; + + let + r; + + /** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ + function saRules(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let + release = slave.releaseRules; + + r = ""; + + // TODO: may need updating to detail effect of chastity + + if (!slave.fuckdoll) { + r += `${He} `; + if (slave.fetish === "mindbroken") { + r += `is mentally broken so none of the rules have any impact. `; + } else { + let + punishments = 0, + rewards = 3; + + switch (slave.assignment) { + case "be confined in the arcade": + if (slave.devotion < -50) { + r += `is so unhappy that ${he} has little interest in getting off, not that ${he} gets a choice. `; + slave.need = 0; + } else if (slave.energy <= 20) { + r += `is frigid and has little interest in getting off, not that ${he} gets a choice. `; + slave.need = 0; + } else if (slave.need < slave.needCap * 0.5) { + if (slave.devotion <= 20) { + r += `gets off at work despite ${his} reluctance, <span class="hotpink">habituating ${him} to being a fuckhole.</span> `; + slave.devotion++; + if (slave.trust >= -20 && slave.devotion <= 20) { + r += `${He} hates ${himself} for climaxing, and knows the mild aphrodisiacs in the food are forcing ${his} arousal, <span class="gold">frightening ${him}.</span> `; + slave.trust--; + } + slave.need -= 20; + } else if (release !== "permissive" && release !== "masturbation" && release !== "chastity") { + r += `gets off at work, so being unable to sate ${his} urges doesn't affect ${him} seriously. `; + slave.need -= 20; + } else { + r += `gets off at work, so being unable to touch ${himself} doesn't bother ${him}. `; + slave.need -= 20; + } + } else { + r += `wasn't a popular enough hole to sate ${his} arousal, leaving ${him} <span class="gold">uncomfortably horny</span> despite ${his} conditions. `; + slave.trust -= 3; + } + + if (!slave.attrKnown) { + if ((V.week - slave.weekAcquired > 4) && slave.energy >= 20) { + r += `${V.assistantName === "your personal assistant" ? `Your personal assistant` : `${V.assistantName}`} has been monitoring ${him} as ${his} body gets used. It seems ${he} is ${attractionDiscovery(slave)}. `; + } + slave.attrKnown = 1; + } + + break; + + case "be the Madam": + slave.need -= V.BrothiIDs.length * 10; + if (slave.energy <= 20) { + r += `is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting ${his} sexual outlets superfluous<</if>>. `; + slave.need = 0; + } else if (slave.need < slave.needCap * 0.5) { + if (release !== "permissive" && release !== "masturbation" && release !== "chastity") { + r += `gets off at work, so being forbidden from masturbation doesn't really bother ${him}. `; + slave.need -= 20; + } else { + r += `gets off at work, so ${he} doesn't feel the need for release that often. `; + slave.need -= 20; + } + } else { + if (release === "restrictive" || release === "chastity") { + r += `willingly begs you to ${playerFetishPlay(slave)} whenever ${he} crosses paths with you. ${playerEnergy(slave)} ${playerDiscoversFetish(slave)} ${playerDrugEffects(slave)}`; + } else if (release === "masturbation") { + if (slave.devotion < 80) { + r += `is a little disappointed that ${he}'s limited to ${his} hands and toys, but <span class="mediumaquamarine">trusts you know what's best for ${him}. </span>`; + slave.trust++, slave.need = 0; + } else { + r += `<span class="mediumaquamarine">trusts your judgment</span> that only ${he} really knows how to pleasure ${himself}, though ${he} <span class="mediumorchid">often wonders why you don't use ${him}. </span>`; + slave.trust++, slave.devotion -= 2, slave.need = 0; + } + + if (slave.devotion >= 20) { + r += `When ${he} does play with ${himself}, ${he} ${masturbationFetishPlay(slave)} ${masturbationDiscoversFetish(slave)}`; + } + r += `${masturbationDrugEffects(slave)}`; + } else { + if (!V.universalRulesConsent) { + r += `happily <span class="mediumaquamarine">avails ${himself}</span> of your permission to`; + slave.trust++, slave.need = 0; + r += `${rapeFetish(slave)} ${rapeDiscoversFetish(slave)}`; + } else { + r += `<span class="mediumaquamarine">relies</span> on your other slaves for mutual satisfaction,`; + slave.trust++, slave.need = 0; + r += `${consentFetish(slave)} ${consentDiscoversFetish(slave)}`; + } + r += `${permissiveDrugEffects(slave)}`; + } + } + + r += `${He} is <span class="hotpink">very happy</span> with ${his} private room in $brothelName and <span class="mediumaquamarine">trusts</span> you a bit more for placing ${him} in charge of it. `; + slave.devotion++, slave.trust++; + + if (!V.universalRulesConsent) { + if (release !== "restrictive" && release !== "masturbation" && release !== "chastity") { + if (slave.energy > 95) { + if (V.BrothiIDs > 2) { + r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">adores</span> you for leaving plentiful outlets for ${his} nymphomania under ${his} care. `; + } else { + r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more whores to $brothelName. `; + } + slave.devotion++; + } else if (slave.fetishKnown && slave.fetishStrength >= 60) { + if (slave.fetish === "sadist") { + if (V.BrothiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">adores</span> you for providing a whole brothel of whores for ${him} to rape. `; + } else { + r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more whores to $brothelName for ${him} to rape. `; + } + slave.devotion++; + } else if (slave.fetish === "dom") { + if (V.BrothiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">adores</span> you for allowing ${him} a brothel of whores to dominate. `; + } else { + r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more whores to ${his} domain. `; + } + slave.devotion++; + } + } + } + } + + if (!slave.attrKnown) { + if ((V.week - slave.weekAcquired > 4) && slave.energy >= 20) { + r += `${V.assistantName === "your personal assistant" ? `Your personal assistant` : `${V.assistantName}`} has been monitoring ${him} as ${he} manages clients, analyzing ${his} tastes. It seems ${he} is ${attractionDiscovery(slave)}`; + slave.attrKnown = 1; + } + } + + if (slave.lactationRules === "induce") { + r += `Whenever ${he} finds a free moment from ${his} duties, ${he} spends that time massaging ${his} breasts and working ${his} nipples. `; + slave.induceLactation += 2; + induceLactation(slave); + if (slave.lactation === 1) { + slave.lactationRules = "maintain"; + } + } else if (slave.lactationRules === "maintain") { + if (V.servantMilkers) { + r += `${His} duties keep ${him} busy, but ${he} <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever ${he} can,`; + V.servantMilkersMultiplier = 0.25; + r += `<<include "SA get milked"`; // TODO: + V.servantMilkersMultiplier = 1; + r += `giving $milk liters of milk over the week, which is sold for <span class="yellowgreen"><<print cashFormat($milkSale)>> .</span>`; + } else { + r += `Whenever ${he} finds a free moment from ${his} duties, ${he} takes the time to thoroughly milk ${his} breasts to keep ${his} lactation strong for you. `; + slave.lactationDuration = 2; slave.boobs -= slave.boobsMilk, slave.boobsMilk = 0; + } + } + + r += `${He} does ${his} best for you, so ${he} frequently deserves a reward and never needs to be punished. `; + + if (rewards > 0) { + switch (slave.standardReward) { + case "relaxation": + r += `${He}'s given free time, which ${he}`; + if (V.spa) { + r += `usually spends in ${V.spaName}<<if $Attendant != 0>> enjoying ${Attendant.slaveName}'s care<</if>>. `; + } else { + r += `usually spends relaxing in ${his} room<<if $BrothiIDs.length > 1>> with a whore between ${his} legs<</if>>. `; + } + + if (slave.relationship) { + r += `${He} often asks to save these breaks so ${he} can spend them with ${his} <<if $slaves[$i].relationship == 1>>friend<<elseif $slaves[$i].relationship == 2>>best friend<<elseif $slaves[$i].relationship == 3>>friend with benefits<<elseif $slaves[$i].relationship == 4>>sweetheart<<else>>wife<</if>>. `; + } + r += `These breaks are <span class="green">good for ${him}. </span>`; + slave.health += rewards; + break; + case "drugs": + r += `${He}'s <span class="hotpink">rewarded</span> with hits of mild recreational drugs, which <span class="red">isn't healthy,</span> but helps bind ${him} to you strongly. `; + slave.health -= rewards; + slave.devotion += rewards * 2; + break; + case "orgasm": + r += `${He}'s <span class="hotpink">rewarded</span> with`; + if (slave.clitPiercing === 3) { + r += `sustained orgasm from ${his} <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,`; + } else if (slave.releaseRules === "sapphic") { + r += `immediate sex with any nearby slave,`; + } else { + r += `a quick climax from a vibrator,`; + } + r += `<span class="green">boosting ${his} libido. </span>`; + if (slave.energy < 98) { + slave.energy += rewards, slave.need -= rewards * 10; + } + slave.devotion += rewards; + break; + default: + r += `${He}'s <span class="hotpink">rewarded</span>`; + if (punishments && slave.standardPunishment === "situational") { + r += `and <span class="gold">punished</span>`; + } + r += `situationally, letting ${him} develop normally. `; + slave.devotion += rewards; + break; + } + } + + break; + + case "work in the brothel": + if (slave.devotion < -50) { + r += `is so unhappy that ${he} has little interest in getting off, not that ${his} clients care. `; + slave.need = 0; + } else if (slave.energy <= 20) { + r += `is frigid and has little interest in getting off, not that ${his} clients care. `; + slave.need = 0; + } else if (slave.need < slave.needCap * 0.5) { + if (slave.devotion <= 20) { + r += `gets off at work despite ${his} reluctance, <span class="hotpink">habituating ${him} to sexual slavery. </span>`; + slave.devotion++; + if (slave.trust > -20 && slave.devotion <= 20) { + r += `${He} hates ${himself} for climaxing, and knows the mild aphrodisiacs in the food are forcing ${his} arousal, <span class="gold">frightening ${him}. </span>`; + slave.trust--; + } + slave.need -= 20; + } else if (release !== "permissive" && release !== "masturbation" && release !== "chastity") { + r += `gets off at work, so being forbidden to masturbate doesn't affect ${him} seriously. `; + slave.need -= 20; + } else { + r += `gets off at work, so ${he} doesn't feel the need to masturbate frequently. `; + slave.need -= 20; + } + } else { + if (release === "restrictive" || release === "chastity") { + if (slave.devotion <= 20 && slave.trust > -20) { + r += `refuses to come up to the penthouse for sexual release, and is <span class="gold">severely punished</span> for illicit masturbation. `; + slave.trust -= 2; + } else if (slave.devotion <= 50) { + if (slave.devotion <= 20) { + r += `occasionally comes to the penthouse to beg for sexual release. `; + } else { + r += `doesn't mind having to come to the penthouse to beg for sexual release. `; + } + r += `${playerEnergy(slave)}`; + } else { + r += `willingly comes up to the penthouse and begs you to ${playerFetishPlay(slave)} every chance ${he} gets. ${playerEnergy(slave)}`; + } + r += `${playerDiscoversFetish(slave)} ${playerDrugEffects(slave)}`; + } else if (release === "masturbation") { + if (slave.sexualFlaw === "attention whore") { + r += `<span class="hotpink">enjoys being allowed to masturbate,</span> especially since it's often to the pleasure of an aroused client. `; + slave.devotion++, slave.need = 0; + } else if (slave.devotion <= 20) { + if (slave.trust > -20) { + r += `takes solace in ${his} permission to masturbate rather than being forced to beg for sex, though being forced to do it in front of an aroused client prevents ${him} from getting complacent; you can never know when they'll want more. `; + slave.need = 0; + } else { + r += `enjoys being allowed to masturbate rather than trading sex with other slaves, though being forced to do it in front of an aroused client <span class="gold">terrifies ${him};</span> you can never know when they'll want more. `; + slave.trust--, slave.need = 0; + } + } else if (slave.devotion <= 50) { + r += `accepts having to relieve ${himself} solely through masturbation. `; + slave.need = 0; + } else if (slave.devotion <= 80) { + r += `is a little disappointed that ${he}'s limited to ${his} hands and toys, but <span class="mediumaquamarine">trusts you know what's best for ${him}. </span>`; + slave.trust++, slave.need = 0; + } else { + r += `<span class="mediumaquamarine">trusts your judgment</span> that only ${he} really knows how to pleasure ${himself}, though ${he} <span class="mediumorchid">often wonders why you don't use ${him}. </span>`; + slave.devotion -= 2, slave.trust++, slave.need = 0; + } + + if (slave.devotion >= 20) { + r += `When ${he} does play with ${himself}, ${he} ${masturbationFetishPlay(slave)} ${masturbationDiscoversFetish(slave)}`; + } + r += `${masturbationDrugEffects(slave)}`; + } else { + if (!V.universalRulesConsent) { + if (slave.devotion <= 20) { + if (slave.trust > -20) { + if (release === "permissive") { + r += `masturbates whenever ${he} can find a private moment to take care of the urges induced by the food, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `refuses to use other slaves to get off, and is forced to take additional clients <span class="gold">as punishment</span> for illicit masturbation. `; + slave.trust -= 2, slave.need -= 10; + } + } else { + if (release === "permissive") { + r += `prefers to masturbate rather than demanding sex from other slaves or giving free samples, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `is forced by the urges induced by the food to either demand sex from other slaves or attempt to attract additional clients. ${He} <span class="hotpink">hates ${himself}</span> for it. `; + slave.devotion++, slave.need *= 0.5; + } + } + } else if (slave.devotion <= 50) { + r += `<span class="hotpink">accepts the need</span> to`; + slave.devotion++, slave.need = 0; + r += `${rapeFetish(slave)} ${rapeDiscoversFetish(slave)}`; + } else { + r += `happily <span class="mediumaquamarine">avails ${himself}</span> of your permission to`; + slave.trust++, slave.need = 0; + r += `${rapeFetish(slave)} ${rapeDiscoversFetish(slave)}`; + } + } else { + if (slave.devotion <= 20) { + if (slave.trust > -20) { + if (release === "permissive") { + r += `prefers to masturbate rather than asking other slaves for sex or giving free samples, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `refuses to ask other slaves for sex, and is <span class="gold">severely punished</span> for illicit masturbation. `; + slave.trust -= 2, slave.need -= 10; + } + } else { + if (release === "permissive") { + r += `prefers to masturbate rather than trading sex with other slaves or giving free samples, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `is forced by the urges induced by the food to either swap sex with other slaves or attempt to attract additional clients. ${He} <span class="hotpink">hates ${himself}</span> for it. `; + slave.devotion++, slave.need *= 0.5; + } + } + } else if (slave.devotion <= 50) { + r += `<span class="hotpink">accepts having to ask</span> other slaves for sex,`; + slave.devotion++, slave.need = 0; + r += `${consentFetish(slave)} ${consentDiscoversFetish(slave)}`; + } else { + r += `<span class="mediumaquamarine">relies</span> on your other slaves for mutual satisfaction,`; + slave.trust++, slave.need = 0; + r += `${consentFetish(slave)} ${consentDiscoversFetish(slave)}`; + } + } + r += `${permissiveDrugEffects(slave)}`; + } + } + + if (slave.devotion <= 20) { + if (!slave.voice) { + r += `Living as a mute <span class="hotpink">molds ${him}</span> to your will. `; + slave.devotion++; + } else if (slave.lips > 95) { + r += `Being unable to speak through ${his} facepussy <span class="hotpink">molds ${him}</span> to your will. `; + slave.devotion++; + } else if (slave.speechRules === "restrictive") { + r += `Living under enforced silence <span class="hotpink">molds ${him}</span> to your will. `; + slave.devotion++; + } + } + + if (slave.devotion <= 20) { + switch (V.brothelDecoration) { + case "Degradationist": + case "standard": + r += `The spare living conditions of $brothelName <span class="hotpink">get ${him} used</span> to the routine of`; + if (slave.trust >= 20) { + r += `slavery and <span class="gold">keep ${him} aware of ${his} lowly place. </span>`; + slave.trust--; + } else { + r += `slavery. `; + } + slave.devotion++; + break; + case "Chattel Religionist": + r += `The open, yet comfortable, conditions of $brothelName <span class="hotpink">get ${him} used</span> to the routine of slavery. `; + slave.devotion++; + break; + default: + r += `${He} gets a little room all to ${himself}, allowing ${him} to feel self-reliant; or it would, if it didn't reek of sex and shame after all the customers ${he} serviced in it. `; + break; + } + } else { + switch (V.brothelDecoration) { + case "Degradationist": + case "standard": + if (slave.trust > 40) { + r += `The spare living conditions of $brothelName <span class="gold">remind ${him} not to get too comfortable</span> with ${his} life. `; + slave.trust -= 2; + } else if (slave.trust > 10) { + r += `The spare living conditions of $brothelName <span class="gold">keep ${him} aware of ${his} place. </span>`; + slave.trust--; + } + break; + case "Chattel Religionist": + r += `The open, yet comfortable, conditions of $brothelName's slave quarters are quite refreshing after a day of public sex, even if ${he} has to share it with all the other whores. `; + break; + default: + r += `${He} likes ${his} little room in $brothelName, even if <<if canSmell($activeSlave)>>it smells of sex<<else>>it's filled with the heat of sex<</if>> after fucking in it all day. `; + break; + } + } + + if (!V.universalRulesConsent) { + if (slave.devotion <= 20) { + if (slave.trust > -10) { + if (V.BrothiIDs.length > 2 || V.Madam) { + r += `Under the rules, ${he} finds ${himself} constantly molested by other slaves, and lives ${his} life constantly <span class="gold">afraid. </span>`; + } else { + r += `Under the rules, ${he} is free game for other slaves to molest, and lives ${his} life constantly <span class="gold">afraid</span> of the day you assign more whores to $brothelName. `; + } + slave.trust -= 2; + } else { + if (V.BrothiIDs.length > 2 || V.Madam) { + r += `Under the rules, ${he} finds ${himself} constantly molested by other slaves, but ${he}'s already in such constant terror it doesn't seriously affect ${him}. `; + } else { + r += `Under the rules, ${he} will someday find ${himself} constantly molested by other slaves, but ${he}'s already in such constant terror it that it doesn't cross ${his} mind. `; + } + } + } else if (release !== "restrictive" && release !== "masturbation" && release !== "chastity") { + if (slave.energy > 95) { + if (V.BrothiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">adores</span> you for providing plentiful outlets for ${his} nymphomania. `; + } else { + r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more whores to $brothelName to get ${him} off. `; + } + slave.devotion++; + } else if (slave.fetishKnown && slave.fetishStrength >= 60) { + if (slave.fetish === "sadist") { + if (V.BrothiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">adores</span> you for providing a whole brothel of whores for ${him} to rape. `; + } else { + r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more whores to $brothelName for ${him} to rape. `; + } + slave.devotion++; + } else if (slave.fetish === "dom") { + if (V.BrothiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">adores</span> you for providing a whole brothel of whores for ${him} to dominate. `; + } else { + r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more whores to $brothelName for ${him} to dominate. `; + } + slave.devotion++; + } + } + } + } else { + if (slave.devotion <= 20 && slave.devotion > -20) { + if (V.BrothiIDs.length > 2 || V.Madam) { + r += `Since ${he}'s low in the slave hierarchy, <span class="mediumaquamarine">${he} knows</span> that the rule that slaves must get consent before having sex with ${him} are all that protect ${him} from abuse. `; + } else { + r += `Since ${he}'s low in the slave hierarchy, <span class="mediumaquamarine">${he} knows</span> that the rule that slaves must get consent before having sex with ${him} are all that protect ${him} from abuse. Well, that and the fact $brothelName is rather empty. `; + } + slave.trust++; + } + } + + if (!slave.attrKnown) { + if ((V.week - slave.weekAcquired > 4) && slave.energy >= 20) { + r += `${V.assistantName === "your personal assistant" ? `Your personal assistant` : `${V.assistantName}`} has been monitoring ${him} as ${he} services customers, analyzing ${his} sexuality. It seems ${he} is ${attractionDiscovery(slave)}`; + slave.attrKnown = 1; + } + } + + if (slave.devotion >= 50) { + r += `${He} does ${his} best for you, so ${he} frequently deserves a reward and never needs to be punished. `; + punishments = 0; + rewards = 3; + } else if (slave.devotion >= 20) { + r += `${He}'s obedient out of acceptance of ${his} place, so ${he} often deserves a reward and rarely needs to be punished. `; + punishments = 1; + rewards = 2; + } else if (slave.devotion > -20) { + if (slave.trust < -20) { + r += `${He}'s obedient out of fear, so ${he} only rarely deserves a reward and sometimes needs to be punished. `; + punishments = 1; + rewards = 1; + } else { + r += `${He}'s too trusting for obedience and often needs to be punished. `; + punishments = 2; + rewards = 0; + } + } else { + if (slave.trust < -50) { + r += `${He}'s only obedient out of terror, so ${he} sometimes needs to be punished. `; + punishments = 1; + rewards = 0; + } else { + r += `${He} hates you too much to obey, so ${he} needs constant punishment. `; + punishments = 3; + rewards = 0; + } + } + + if (rewards > 0) { + switch (slave.standardReward) { + case "relaxation": + r += `${He}'s given free time, which ${he}`; + if (V.spa) { + r += `usually spends in ${V.spaName}<<if $Attendant != 0>> enjoying ${Attendant.slaveName}'s care<</if>>. `; + } else { + r += `usually spends relaxing in the penthouse slave quarters. `; + } + + if (slave.relationship) { + r += `${He} often asks to save these breaks so ${he} can spend them with ${his} <<if $slaves[$i].relationship == 1>>friend<<elseif $slaves[$i].relationship == 2>>best friend<<elseif $slaves[$i].relationship == 3>>friend with benefits<<elseif $slaves[$i].relationship == 4>>sweetheart<<else>>wife<</if>>. `; + } + r += `These breaks are <span class="green">good for ${him}. </span>`; + slave.health += rewards; + break; + case "drugs": + r += `${He}'s <span class="hotpink">rewarded</span> with hits of mild recreational drugs, which <span class="red">isn't healthy,</span> but helps bind ${him} to you strongly. `; + slave.health -= rewards; + slave.devotion += rewards * 2; + break; + case "orgasm": + r += `${He}'s <span class="hotpink">rewarded</span> with`; + if (slave.clitPiercing === 3) { + r += `sustained orgasm from ${his} <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,`; + } else if (slave.releaseRules === "sapphic") { + r += `immediate sex with any nearby slave,`; + } else { + r += `a quick climax from a vibrator,`; + } + r += `<span class="green">boosting ${his} libido. </span>`; + + if (slave.energy < 98) { + slave.energy += rewards; + } + slave.need -= rewards * 10; + slave.devotion += rewards; + break; + default: + r += `${He}'s <span class="hotpink">rewarded</span>`; + if (punishments && slave.standardPunishment === "situational") { + r += `and <span class="gold">punished</span>`; + } + r += `situationally, letting ${him} develop normally. `; + slave.devotion += rewards; + break; + } + } + + if (punishments) { + switch (slave.standardPunishment) { + case "confinement": + r += `When ${he} disobeys, ${he}`; + if (V.cellblock) { + r += `<span class="gold">spends ${his} off hours in $cellblockName</span><<if $Wardeness != 0>>, where ${he} can experience ${Wardeness.slaveName}'s tender mercies<</if>>. `; + } else { + r += `spends ${his} off hours <span class="gold">shut up in a box</span> until ${he} behaves. `; + } + slave.trust -= punishments; + break; + case "whipping": + r += `When ${he} disobeys, ${he}'s <span class="gold">whipped,</span> not hard enough to mark ${him}, but hard enough to <span class="red">hurt,</span> breaking ${him} quickly. `; + slave.health -= punishments; + slave.trust -= 2 * punishments; + break; + case "chastity": + r += `When ${he} disobeys, ${he} finds ${his} next client is into <span class="gold">orgasm denial,</span> <span class="red">reducing ${his} libido</span> but breaking ${him} to <span class="hotpink">sexual obedience. </span>`; + if (slave.energy > 2) { + slave.energy -= 2 * punishments; + } + slave.devotion += punishments; + slave.trust -= punishments; + break; + default: + if (!rewards || slave.standardReward !== "situational") { + r += `When ${he} disobeys, ${he}'s <span class="gold">punished</span> situationally, letting ${him} develop normally. `; + } + slave.trust -= punishments; + break; + } + } + + break; + + case "be the DJ": + if (slave.energy <= 20) { + r += `is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting ${his} sexual outlets superfluous<</if>>. `; + slave.need = 0; + } else if (slave.need < slave.needCap * 0.5) { + if (release !== "permissive" && release !== "masturbation" && release !== "chastity") { + r += `gets off at work, so being forbidden from masturbation doesn't really bother ${him}. `; + slave.need -= 20; + } else { + r += `gets off at work, so ${he} doesn't feel the need for release that often. `; + slave.need -= 20; + } + } else { + if (release === "restrictive" || release === "chastity") { + r += `willingly begs you to ${playerFetishPlay(slave)} whenever ${he} crosses paths with with you. ${playerEnergy(slave)} ${playerDiscoversFetish(slave)} ${playerDrugEffects(slave)}`; + } else if (release === "masturbation") { + if (slave.devotion < 80) { + r += `is a little disappointed that ${he}'s limited to ${his} hands and toys, but <span class="mediumaquamarine">trusts you know what's best for ${him}. </span>`; + slave.trust++, slave.need = 0; + } else { + r += `<span class="mediumaquamarine">trusts your judgment</span> that only ${he} really knows how to pleasure ${himself}, though ${he} <span class="mediumorchid">often wonders why you don't use ${him}. </span>`; + slave.trust++, slave.devotion -= 2, slave.need = 0; + } + + if (slave.devotion >= 20) { + r += `When ${he} does play with ${himself}, ${he} ${masturbationFetishPlay(slave)} ${masturbationDiscoversFetish(slave)}`; + } + r += `${masturbationDrugEffects(slave)}`; + } else { + if (!V.universalRulesConsent) { + r += `happily <span class="mediumaquamarine">avails ${himself}</span> of your permission to ${rapeFetish(slave)} ${rapeDiscoversFetish(slave)}`; + slave.trust++, slave.need = 0; + } else { + r += `<span class="mediumaquamarine">relies</span> on your other slaves for mutual satisfaction, ${consentFetish(slave)} ${consentDiscoversFetish(slave)}`; + slave.trust++, slave.need = 0; + } + r += `${permissiveDrugEffects(slave)}`; + } + } + + r += `${He} is <span class="hotpink">very happy</span> with ${his} private room in the back of $clubName and <span class="mediumaquamarine">trusts</span> you a bit more for placing your faith in ${his} abilities. `; + slave.devotion++, slave.trust++; + + if (!V.universalRulesConsent) { + if (release !== "restrictive") { + if (slave.energy > 95) { + if (V.ClubiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">adores</span> you for leaving plentiful, tantalizing, outlets for ${his} nymphomania under ${his} care. `; + } else { + r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more sluts to $clubName. `; + } + slave.devotion++; + } else if (slave.fetishKnown && slave.fetishStrength >= 60) { + if (slave.fetish === "sadist") { + if (V.ClubiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">adores</span> you for providing a whole club of sluts for ${him} to rape. `; + } else { + r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more sluts to $clubName for ${him} to rape. `; + } + slave.devotion++; + } else if (slave.fetish === "dom") { + if (V.ClubiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">adores</span> you for allowing ${him} a club of sluts to dominate. `; + } else { + r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">eagerly awaits</span>the day you assign more sluts to ${his} domain. `; + } + slave.devotion++; + } + } + } + } + + if (!slave.attrKnown) { + if ((V.week - slave.weekAcquired > 4) && slave.energy >= 20) { + r += `${V.assistantName === "your personal assistant" ? `Your personal assistant` : `${V.assistantName}`} has been monitoring ${him} as ${he} works the crowd, analyzing ${his} sexual tastes. It seems ${he} is ${attractionDiscovery(slave)}`; + slave.attrKnown = 1; + } + } + + if (slave.lactationRules === "induce") { + r += `Whenever ${he} finds a free moment between ${his} sets, ${he} spends that time massaging ${his} breasts and working ${his} nipples. `; + slave.lactation = 2; + induceLactation(slave); + if (slave.lactation === 1) { + slave.lactationRules = "maintain"; + } + } else if (slave.lactationRules === "maintain") { + if (V.servantMilkers) { + r += `${His} duties keep ${him} busy, but ${he} <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever ${he} can,`; + V.servantMilkersMultiplier = 0.25; + r += `<<include "SA get milked">>`; // TODO: + V.servantMilkersMultiplier = 1; + r += `giving $milk liters of milk over the week, which is sold for <span class="yellowgreen"><<print cashFormat($milkSale)>> .</span>`; + } else { + r += `${He} has worked milking ${himself} into ${his} dance routines, both entertaining the crowd and keeping ${his} lactation strong for you. `; + slave.lactationDuration = 2, slave.boobs -= slave.boobsMilk, slave.boobsMilk = 0; + } + } + + r += `${He} does ${his} best for you, so ${he} frequently deserves a reward and never needs to be punished. `; + punishments = 0; + rewards = 3; + + if (rewards > 0) { + switch (slave.standardReward) { + case "relaxation": + r += `${He}'s given free time, which ${he}`; + if (V.spa) { + r += `usually spends in ${V.spaName}<<if $Attendant != 0>> enjoying ${Attendant.slaveName}'s care<</if>>. `; + } else if (canSee(slave) && slave.intelligence + slave.intelligenceImplant > 50) { + r += `usually spends relaxing in ${his} private room reading books. `; + } else if (canSee(slave) && canHear(slave)) { + r += `usually spends relaxing in ${his} private room watching television. `; + } else if (canSee(slave)) { + r += `usually spends relaxing in ${his} private room reading magazines. `; + } else if (canHear(slave)) { + r += `usually spends relaxing in ${his} private room listening to music. `; + } else { + r += `usually spends napping in ${his} private room. `; + } + + if (slave.relationship) { + r += `${He} often asks to save these breaks so ${he} can spend them with ${his} <<if $slaves[$i].relationship == 1>>friend<<elseif $slaves[$i].relationship == 2>>best friend<<elseif $slaves[$i].relationship == 3>>friend with benefits<<elseif $slaves[$i].relationship == 4>>sweetheart<<else>>wife<</if>>. `; + } + r += `These breaks are <span class="green">good for ${him}. </span>`; + slave.health += rewards; + break; + case "drugs": + r += `${He}'s <span class="hotpink">rewarded</span> with hits of mild recreational drugs, which <span class="red">isn't healthy,</span> but helps bind ${him} to you strongly. `; + slave.health -= rewards; + slave.devotion += rewards * 2; + break; + case "orgasm": + r += `${He}'s <span class="hotpink">rewarded</span> with`; + if (slave.clitPiercing === 3) { + r += `sustained orgasm from ${his} <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,`; + } else if (slave.releaseRules === "sapphic") { + r += `immediate sex with any nearby slave,`; + } else { + r += `a quick climax from a vibrator,`; + } + r += `<span class="green">boosting ${his} libido. </span>`; + break; + default: + r += `${He}'s <span class="hotpink">rewarded</span> situationally, letting ${him} develop normally. `; + slave.devotion += rewards; + break; + } + } + + break; + + case "serve in the club": + if (slave.devotion < -50) { + r += `is so unhappy that ${he} has little interest in getting off, not that ${his} spectators care. `; + slave.need = 0; + } else if (slave.energy <= 20) { + r += `is frigid and has little interest in getting off, not that ${his} spectators care. `; + slave.need = 0; + } else if (slave.need < slave.needCap * 0.5) { + if (slave.devotion <= 20) { + r += `gets off at work despite ${his} reluctance, <span class="hotpink">habituating ${him} to sexual slavery. </span>`; + slave.devotion++; + + if (slave.trust > -20) { + r += `${He} hates ${himself} for climaxing, and knows the mild aphrodisiacs in the food are forcing ${his} arousal, <span class="gold">frightening ${him}. </span>`; + slave.trust--; + } + slave.need = 0; + } else if (release !== "permissive" && release !== "masturbation" && release !== "chastity") { + r += `gets off at work, so being forbidden to masturbate doesn't affect ${him} seriously. `; + slave.need = 0; + } else { + r += `gets off at work, so ${he} doesn't feel the need to masturbate frequently. `; + slave.need = 0; + } + } else { + if (release === "restrictive" || release === "chastity") { + if (slave.devotion <= 50) { + if (slave.devotion <= 20) { + if (slave.trust > -20) { + r += `refuses to come up to the penthouse for sexual release, and is <span class="gold">severely punished</span> for illicit masturbation. `; + slave.trust -= 2; + } else { + r += `occasionally comes to the penthouse to beg for sexual release. `; + } + } else { + r += `doesn't mind having to come to the penthouse to beg for sexual release. `; + } + r += `${playerEnergy(slave)}`; + } else { + r += `willingly comes up to the penthouse and begs you to ${playerFetishPlay(slave)} every break ${he} gets. ${playerEnergy(slave)}`; + } + r += `${playerDiscoversFetish(slave)} ${playerDrugEffects(slave)}`; + } else if (release === "masturbation") { + if (slave.sexualFlaw === "attention whore") { + r += `<span class="hotpink">enjoys being allowed to masturbate,</span> especially since it's often on stage for $clubName's amusement. `; + slave.devotion++, slave.need = 0; + } else if (slave.devotion <= 80) { + if (slave.devotion <= 20) { + if (slave.trust > -20) { + r += `takes solace in ${his} permission to masturbate rather than being forced to beg for sex, though being forced to do it on a table surrounded by citizens prevents ${him} from getting complacent; you can never know when they'll want more. `; + } else { + r += `enjoys being allowed to masturbate rather than trading sex with other slaves, though being forced to do it in on a table surrounded by citizens<span class="gold">terrifies ${him};</span> you can never know when they'll want more. `; + slave.trust--; + } + slave.need = 0; + } else if (slave.devotion <= 50) { + r += `accepts having to relieve ${himself} solely through masturbation. `; + slave.need = 0; + } else { + r += `is a little disappointed that ${he}'s limited to ${his} hands and toys, but <span class="mediumaquamarine">trusts you know what's best for ${him}. </span>`; + slave.need = 0; + } + } else { + r += `<span class="mediumaquamarine">trusts your judgment</span> that only ${he} really knows how to pleasure ${himself}, though ${he} <span class="mediumorchid">often wonders why you don't use ${him}. </span>`; + slave.need = 0; + } + + if (slave.devotion >= 20) { + r += `When ${he} does play with ${himself}, ${he} ${masturbationFetishPlay(slave)} ${masturbationDiscoversFetish(slave)}`; + } + r += `${masturbationDrugEffects(slave)}`; + } else { + if (!V.universalRulesConsent) { + if (slave.devotion <= 50) { + if (slave.devotion <= 20) { + if (slave.trust > -20) { + if (release === "permissive") { + r += `masturbates whenever ${he} can find a private moment to take care of the urges induced by the food, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `refuses to use other slaves to get off, and is forced to spend time with the citizens and their wandering hands <span class="gold">as punishment</span> for illicit masturbation. `; + slave.trust -= 2, slave.need -= 10; + } + } else { + if (release === "permissive") { + r += `prefers to masturbate rather than demanding sex from other slaves or offering ${himself} up, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `is forced by the urges induced by the food to either demand sex from other slaves or offering ${himself} to patrons. ${He} <span class="hotpink">hates ${himself}</span> for it. `; + slave.devotion++, slave.need = 0; + } + } + } else { + r += `<span class="hotpink">accepts the need</span> to ${rapeFetish(slave)} ${rapeDiscoversFetish(slave)}`; + slave.devotion++, slave.need = 0; + } + } else { + r += `happily <span class="mediumaquamarine">avails ${himself}</span> of your permission to ${rapeFetish(slave)} ${rapeDiscoversFetish(slave)}`; + slave.trust++, slave.need = 0; + } + } else { + if (slave.devotion <= 50) { + if (slave.devotion <= 20) { + if (slave.trust > -20) { + if (release === "permissive") { + r += `prefers to masturbate rather than asking other slaves for sex or offering ${himself} to patrons, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `refuses to ask other slaves for sex, and is <span class="gold">severely punished</span> for illicit masturbation. `; + slave.trust -= 2, slave.need -= 10; + } + } else { + if (release === "permissive") { + r += `prefers to masturbate rather than trading sex with other slaves or offering ${himself} up, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `is forced by the urges induced by the food to either swap sex with other slaves or attempt to seduce amorous citizens. ${He} <span class="hotpink">hates ${himself}</span> for it. `; + slave.devotion++, slave.need *= 0.5; + } + } + } else { + r += `<span class="hotpink">accepts having to ask</span> other slaves for sex, ${consentFetish(slave)} ${consentDiscoversFetish(slave)}`; + slave.devotion++, slave.need = 0; + } + } else { + r += `<span class="mediumaquamarine">relies</span> on your other slaves for mutual satisfaction, ${consentFetish(slave)} ${consentDiscoversFetish(slave)}`; + slave.trust++, slave.need = 0; + } + } + r += `${permissiveDrugEffects(slave)}`; + } + } + + if (slave.devotion <= 20) { + if (!slave.voice) { + r += `Living as a mute <span class="hotpink">molds ${him}</span> to your will. `; + } else if (slave.lips > 95) { + r += `Being unable to speak through ${his} facepussy <span class="hotpink">molds ${him}</span> to your will. `; + } else if (slave.speechRules === "restrictive") { + r += `Living under enforced silence <span class="hotpink">molds ${him}</span> to your will. `; + } + r += `${He} shares a room with <<if $ClubiIDs.length > 4>>some of <</if>>the other sluts, preventing ${him} from becoming too complacent. It doesn't help that during business hours ${he} has to take citizens in ${his} own bed. `; + slave.devotion++; + } else { + r += `${He} likes ${his} personal space in $clubName, even if <<if canSmell($activeSlave)>>it smells of<<else>>it's filled with the heat from<</if>> sex and citizens. `; + } + + if (!V.universalRulesConsent) { + if (slave.devotion <= 20) { + if (slave.trust > -10) { + if (V.ClubiIDs.length > 2 || V.DJ) { + r += `Under the rules, ${he} finds ${himself} constantly molested by other slaves, and lives ${his} life constantly <span class="gold">afraid. </span>`; + } else { + r += `Under the rules, ${he} is free game for other slaves to molest, and lives ${his} life constantly <span class="gold">afraid</span> of the day you assign more sluts to $clubName. `; + } + slave.trust -= 2; + } else { + if (V.ClubiIDs.length > 2 || V.DJ) { + r += `Under the rules, ${he} finds ${himself} constantly molested by other slaves, but ${he}'s already in such constant terror it doesn't seriously affect ${him}. `; + } else { + r += `Under the rules, ${he} will someday find ${himself} constantly molested by other slaves, but ${he}'s already in such constant terror it that it doesn't cross ${his} mind. `; + } + } + } else if (release !== "restrictive" && release !== "masturbation" && release !== "chastity") { + if (slave.energy > 95) { + if (V.ClubiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">adores</span> you for providing plentiful outlets for ${his} nymphomania. `; + } else { + r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more sluts to $clubName to get ${him} off. `; + } + slave.devotion++; + } else if (slave.fetishKnown && slave.fetishStrength >= 60) { + if (slave.fetish === "sadist") { + if (V.ClubiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">adores</span> you for providing a whole club of sluts for ${him} to rape. `; + } else { + r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more sluts to $clubName for ${him} to rape. `; + } + slave.devotion++; + } else if (slave.fetish === "dom") { + if (V.ClubiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">adores</span> you for providing a whole club of sluts for ${him} to dominate. `; + } else { + r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">eagerly awaits</span> the day you assign more sluts to $clubName for ${him} to dominate. `; + } + slave.devotion++; + } + } + } + } else { + if (slave.devotion <= 20 && slave.devotion > -20) { + if (V.ClubiIDs.length > 2 || V.DJ) { + r += `Since ${he}'s low in the slave hierarchy, <span class="mediumaquamarine">${he} knows</span> that the rule that slaves must get consent before having sex with ${him} are all that protect ${him} from abuse. `; + } else { + r += `Since ${he}'s low in the slave hierarchy, <span class="mediumaquamarine">${he} knows</span> that the rule that slaves must get consent before having sex with ${him} are all that protect ${him} from abuse. Well, that and the fact $clubName is rather empty. `; + } + slave.trust++; + } + } + + if (!slave.attrKnown) { + if ((V.week - slave.weekAcquired > 4) && slave.energy >= 20) { + r += `${V.assistantName === "your personal assistant" ? `Your personal assistant` : `${V.assistantName}`} has been monitoring ${him} as ${he} services citizens, analyzing ${his} sexuality. It seems ${he} is ${attractionDiscovery(slave)}`; + slave.attrKnown = 1; + } + } + + if (slave.devotion >= 50) { + r += `${He} does ${his} best for you, so ${he} frequently deserves a reward and never needs to be punished. `; + punishments = 0; + rewards = 3; + } else if (slave.devotion >= 20) { + r += `${He}'s obedient out of acceptance of ${his} place, so ${he} often deserves a reward and rarely needs to be punished. `; + punishments = 1; + rewards = 2; + } else if (slave.devotion > -20) { + if (slave.trust < -20) { + r += `${He}'s obedient out of fear, so ${he} only rarely deserves a reward and sometimes needs to be punished. `; + punishments = 1; + rewards = 1; + } else { + r += `${He}'s too trusting for obedience and often needs to be punished. `; + punishments = 2; + rewards = 0; + } + } else { + if (slave.trust < -50) { + r += `${He}'s only obedient out of terror, so ${he} sometimes needs to be punished. `; + punishments = 1; + rewards = 0; + } else { + r += `${He} hates you too much to obey, so ${he} needs constant punishment. `; + punishments = 3; + rewards = 0; + } + } + + if (rewards > 0) { + switch (slave.standardReward) { + case "relaxation": + r += `${He}'s given free time, which ${he}`; + if (V.spa) { + r += `usually spends in ${V.spaName}<<if $Attendant != 0>> enjoying ${Attendant.slaveName}'s care<</if>>. `; + } else { + r += `usually spends relaxing in the penthouse slave quarters. `; + } + + if (slave.relationship) { + r += `${He} often asks to save these breaks so ${he} can spend them with ${his} <<if $slaves[$i].relationship == 1>>friend<<elseif $slaves[$i].relationship == 2>>best friend<<elseif $slaves[$i].relationship == 3>>friend with benefits<<elseif $slaves[$i].relationship == 4>>sweetheart<<else>>wife<</if>>. `; + } + r += `These breaks are <span class="green">good for ${him}. </span>`; + slave.health += rewards; + break; + case "drugs": + r += `${He}'s <span class="hotpink">rewarded</span> with hits of mild recreational drugs during business hours, which <span class="red">isn't healthy,</span> but helps bind ${him} to you strongly. The patrons won't complain either. `; + slave.health -= rewards; + slave.devotion += rewards * 2; + break; + case "orgasm": + r += `${He}'s <span class="hotpink">rewarded</span> with`; + if (slave.clitPiercing === 3) { + r += `sustained orgasm from ${his} <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing, often on stage during a dance,`; + } else if (slave.releaseRules === "sapphic") { + r += `immediate sex with any nearby slave,`; + } else { + r += `a quick climax from a vibrator,`; + } + r += `<span class="green">boosting ${his} libido. </span>`; + if (slave.energy < 98) { + slave.energy += rewards; + } + slave.need -= rewards * 10; + break; + default: + r += `${He}'s <span class="hotpink">rewarded</span>`; + if (punishments && slave.standardPunishment === "situational") { + r += `and <span class="gold">punished</span>`; + } + r += `situationally, letting ${him} develop normally. `; + slave.devotion += rewards; + break; + } + } + + if (punishments) { + switch (slave.standardPunishment) { + case "confinement": + r += `When ${he} disobeys, ${he}`; + if (V.cellblock) { + r += `<span class="gold">spends ${his} off hours in $cellblockName</span><<if $Wardeness != 0>>, where ${he} can experience ${Wardeness.slaveName}'s tender mercies<</if>>. `; + } else { + r += `spends ${his} off hours <span class="gold">shut up in a box</span> until ${he} behaves. `; + } + break; + case "whipping": + r += `When ${he} disobeys, ${he}'s <span class="gold">whipped,</span> not hard enough to mark ${him}, but hard enough to <span class="red">hurt,</span> breaking ${him} quickly. `; + slave.health -= punishments; + slave.trust -= 2 * punishments; + break; + case "chastity": + r += `When ${he} disobeys, ${he} finds ${his} next dance to be both extremely sexual and <span class="gold">completely unsatisfying,</span> <span class="red">reducing ${his} libido</span> but breaking ${him} to <span class="hotpink">sexual obedience. </span>`; + if (slave.energy > 2) { + slave.energy -= 2 * punishments; + } + slave.devotion += punishments; + slave.trust -= punishments; + break; + default: + if (!rewards || slave.standardReward !== "situational") { + r += `When ${he} disobeys, ${he}'s <span class="gold">punished</span> situationally, letting ${him} develop normally. `; + } + slave.trust -= punishments; + } + } + + break; + + case "be the Nurse": + case "get treatment in the clinic": + case "be the Wardeness": + case "be confined in the cellblock": + case "be the Attendant": + case "rest in the spa": + case "be the Matron": + case "work as a nanny": + // TODO: this will all need to be rewritten + if (slave.devotion < -50) { + r += `is so unhappy that ${he} has little interest in getting off. `; + slave.need = 0; + } else if (slave.energy <= 20) { + r += `is frigid and has little interest in getting off. `; + slave.need = 0; + } else if (V.Matron) { + r += `is routinely relieved of any built up tension by ${Matron.slaveName} and ${his}`; + if (canPenetrate(slave) && V.Matron.boobs >= 500) { + r += `luscious breasts. `; + slave.counter.mammary += 14, V.mammaryTotal += 14; + } else { + if (slave.lips > 40) { + r += `luscious lips. `; + } else if (slave.skill.oral > 30) { + r += `skilled tongue. `; + } else { + r += `willing mouth. `; + } + slave.counter.oral += 14, V.oralTotal += 14; + } + slave.need = -60; + } else { + if (release === "restrictive" || release === "chastity") { + if (slave.devotion <= 50) { + if (slave.devotion <= 20) { + if (slave.trust > -20) { + r += `refuses to come up to the penthouse for sexual release and is <span class="gold">severely punished</span> for illicit masturbation. `; + } else { + r += `occasionally comes to the penthouse to beg for sexual release. `; + } + } else { + r += `doesn't mind having to come to the penthouse to beg for sexual release. `; + } + r += `${playerEnergy(slave)}`; + } else { + r += `willingly comes up to the penthouse and begs you to ${playerFetishPlay(slave)} whenever the urge strikes. ${playerEnergy(slave)}`; + } + r += `${playerDiscoversFetish(slave)} ${playerDrugEffects(slave)}`; + } else if (release === "masturbation") { + if (slave.devotion <= 20) { + if (slave.trust > -20) { + r += `takes solace in ${his} permission to masturbate rather than being forced to beg for sex, <span class="mediumaquamarine">reducing ${his} fear</span> of you. `; + slave.trust += 2, slave.need = 0; + } else { + r += `enjoys being allowed to masturbate rather than trading sex with other slaves, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you but <span class="mediumorchid">allowing ${him} to remain in control of ${him} sexuality. </span>`; + slave.devotion--, slave.trust++, slave.need = 0; + } + } else if (slave.devotion <= 50) { + r += `accepts having to relieve ${himself} solely through masturbation. `; + slave.need = 0; + } else if (slave.devotion <= 80) { + r += `is a little disappointed that ${he}'s limited to ${his} hands and toys, but <span class="mediumaquamarine">trusts you know what's best for ${him}. </span>`; + slave.trust++, slave.need = 0; + } else { + r += `<span class="mediumaquamarine">trusts your judgment</span> that only ${he} really knows how to pleasure ${himself}, though ${he} <span class="mediumorchid">often wonders why you don't use ${him}. </span>`; + slave.devotion -= 2, slave.trust++, slave.need = 0; + } + + if (slave.devotion >= 20) { + r += `When ${he} does play with ${himself}, ${he} ${masturbationFetishPlay(slave)} ${masturbationDiscoversFetish(slave)}`; + } + r += `${masturbationDrugEffects(slave)}`; + } else { + if (!V.universalRulesConsent) { + if (slave.devotion <= 20) { + if (slave.trust > -20) { + if (release === "permissive") { + r += `masturbates whenever ${he} can find a private moment to take care of the urges induced by the food, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `refuses to ask other slaves for sex, and is <span class="gold">severely punished</span> for illicit masturbation. `; + slave.trust -= 2, slave.need -= 10; + } + } else { + if (release === "permissive") { + r += `prefers to masturbate rather than demanding sex from other slaves, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `is forced by the urges induced by the food to demand sex from other slaves, and <span class="hotpink">hates ${himself}</span> for it. `; + slave.devotion++, slave.need = 0; + } + } + } else if (slave.devotion <= 50) { + r += `<span class="hotpink">accepts the need</span> to ${rapeFetish(slave)} ${rapeDiscoversFetish(slave)}`; + slave.devotion++, slave.need = 0; + } else { + r += `happily <span class="mediumaquamarine">avails ${himself}</span> of your permission to ${rapeFetish(slave)} ${rapeDiscoversFetish(slave)}`; + slave.trust++, slave.need = 0; + } + r += `prefers to masturbate rather than asking other slaves for sex or giving free samples, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + } else { + if (slave.devotion <= 20) { + if (slave.trust > -20) { + if (release === "permissive") { + r += `refuses to ask other slaves for sex, and is <span class="gold">severely punished</span> for illicit masturbation. `; + slave.trust++, slave.need = 0; + } else { + slave.trust -= 2, slave.need -= 10; + } + } else { + if (release === "permissive") { + r += `prefers to masturbate rather than trading sex with other slaves, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + slave.trust++, slave.need = 0; + } else { + r += `is forced by the urges induced by the food to swap sex with other slaves, and <span class="hotpink">hates ${himself}</span> for it. `; + slave.devotion++, slave.need *= 0.5; + } + } + } else if (slave.devotion <= 50) { + r += `<span class="hotpink">accepts having to ask</span> other slaves for sex, ${consentFetish(slave)} ${consentDiscoversFetish(slave)}`; + slave.devotion++, slave.need = 0; + } else { + r += `<span class="mediumaquamarine">relies</span> on your other slaves for mutual satisfaction, ${consentFetish(slave)} ${consentDiscoversFetish(slave)}`; + slave.trust++, slave.need = 0; + } + } + r += `${permissiveDrugEffects(slave)}`; + } + } + + if (slave.devotion <= 20) { + if (!slave.voice) { + r += `Living as a mute <span class="hotpink">molds ${him}</span> to your will. `; + } else if (slave.lips > 95) { + r += `Being unable to speak through ${his} facepussy <span class="hotpink">molds ${him}</span> to your will. `; + } else if (slave.speechRules === "restrictive") { + r += `Living under enforced silence <span class="hotpink">molds ${him}</span> to your will. `; + } + slave.devotion++; + + switch (V.nurseryDecoration) { + case "Chinese Revivalist": + r += `The Oriental artwork in ${his} personal room reminds ${him} of where ${he} is and <span class="hotpink">dulls ${his} will. </span>`; + slave.devotion++; + break; + case "Chattel Religionist": + r += `${He} gets a space of ${his} own in the communal slave quarters, but the constant sexual presence of the other slaves <span class="hotpink">get ${him} used</span> to the routine of`; + if (slave.trust >= 20) { + r += `slavery and <span class="gold">keep ${him} aware of ${his} lowly place. </span>`; + slave.trust--; + } else { + r += `slavery. `; + } + slave.devotion++; + break; + case "Degradationist": + r += `${He} gets a little room all to ${himself}, allowing ${him} to feel self-reliant; or it would, if it didn't have numerous cameras watching ${his} every move. The conditions <span class="hotpink">get ${him} used</span> to the routine of`; + if (slave.trust >= 20) { + r += `slavery and <span class="gold">keep ${him} aware of ${his} lowly place. </span>`; + slave.trust--; + } else { + r += `slavery. `; + } + break; + case "Asset Expansionist": + case "Transformation Fetishist": + case "Pastoralist": + r += `${He} gets a little room all to ${himself}, allowing ${him} to feel self-reliant; or it would, if it weren't filled with constant reminders of ${his} changing body. The conditions <span class="hotpink">get ${him} used</span> to the routine of`; + if (slave.trust >= 20) { + r += `slavery and <span class="gold">keep ${him} aware of ${his} lowly place. </span>`; + slave.trust--; + } else { + r += `slavery. `; + } + break; + default: + r += `${He} gets a comfortable little room all to ${himself}, allowing ${him} to let down ${his} guard and <span class="mediumaquamarine">feel self-reliant. </span>`; + slave.trust++; + break; + } + } else { + switch (V.nurseryDecoration) { + case "Chinese Revivalist": + r += `The Oriental artwork in ${his} personal room reminds ${him} of ${his} position and <span class="hotpink">renders ${him} even more submissive. </span>`; + slave.devotion++; + break; + case "Chattel Religionist": + r += `${He} likes ${his} personal space in ${V.nurseryName}, even if it constantly reminds ${him} that ${he} is naught but a servant to the Prophet. `; + break; + case "Degradationist": + if (slave.trust >= 40) { + r += `The invasive living conditions of ${V.nurseryName} <span class="gold">remind ${him} not to get too comfortable</span> with ${his} life. `; + slave.trust -= 2; + } else if (slave.trust >= 10) { + r += `The invasive living conditions of ${V.nurseryName} <span class="gold">keep ${him} aware of ${his} place. </span>`; + slave.trust--; + } + break; + case "Asset Expansionist": + case "Transformation Fetishist": + case "Pastoralist": + r += `${He} likes ${his} little room in ${V.nurseryName}, ${slave.boobs < 10000 ? `even if ${his} boobs are too small to make the most of it` : `even more so, since it accommodates ${his} expansive bust`}. `; // TODO: + break; + default: + r += `${He} loves ${his} little room in ${V.nurseryName}. It's the perfect end to a busy day of taking care of children. `; + slave.trust++; + break; + } + } + + if (!V.universalRulesConsent) { + if (slave.devotion <= 20) { + if (slave.trust > -10) { + if (V.NurseryiIDs.length > 2) { + r += `Under the rules, ${he} finds ${himself} constantly molested by other slaves, and lives ${his} life constantly <span class="gold">afraid. </span>`; + } else { + r += `Under the rules, ${he} is free game for other slaves to molest, and lives ${his} life constantly <span class="gold">afraid</span> of the day another slave grabs ${him} from under the water. `; + } + slave.trust -= 2; + } else { + if (V.NurseryiIDs.length > 2) { + r += `Under the rules, ${he} finds ${himself} constantly molested by other slaves, but ${he}'s already in such constant terror it doesn't seriously affect ${him}. `; + } else { + r += `Under the rules, ${he} will someday find ${himself} constantly molested by other slaves, but ${he}'s already in such constant terror it that it doesn't cross ${his} mind. `; + } + } + } else if (release !== "restrictive" && release !== "masturbation" && release !== "chastity") { + if (slave.energy > 95) { + if (V.NurseryiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">adores</span> you for providing plentiful outlets for ${his} nymphomania. `; + } else { + r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">eagerly awaits</span> the day ${V.Matron ? `more of your slaves join ${him} in ${V.nurseryName} ` : `you assign more nurses to ${V.nurseryName} to help ${him} relieve ${his} ${slave.balls ? `swollen balls` : `tension`}`}. `; // TODO: + } + } else if (slave.fetishKnown && slave.fetishStrength > 60) { + if (slave.fetish === "sadist") { + if (V.NurseryiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">adores</span> you for providing a whole nursery of slaves for ${him} to rape. `; + } else { + r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">eagerly awaits</span> the day ${V.Matron ? `more of your slaves join ${him} in ${V.nurseryName}` : `you assign more nurses to ${V.nurseryName} to help ${him} unwind`}. `; + } + } else if (slave.fetish === "dom") { + if (V.NurseryiIDs.length > 2) { + r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">adores</span> you for providing a whole nursery of slaves for ${him} to dominate. `; + } else { + r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">eagerly awaits</span> the day ${V.Matron ? `more of your slaves join ${him} in ${V.nurseryName}` : `you assign more nurses to ${V.nurseryName} to help ${him} unwind`}. `; + } + } + } + slave.devotion++; + } + } else { + if (slave.devotion <= 20 && slave.devotion > -20) { + if (V.NurseryiIDs.length > 2) { + r += `Since ${he}'s low in the slave hierarchy, <span class="mediumaquamarine">${he} knows</span> that the rule that slaves must get consent before having sex with ${him} are all that protect ${him} from abuse. `; + } else { + r += `Since ${he}'s low in the slave hierarchy, <span class="mediumaquamarine">${he} knows</span> that the rule that slaves must get consent before having sex with ${him} are all that protect ${him} from abuse. Well, that and the fact ${V.nurseryName} is ${V.Matron ? `mostly frequented by other slaveowners' stock` : `${his} little private sanctuary`}. `; + } + slave.trust++; + } + } + + if (!slave.attrKnown) { + if ((V.week - slave.weekAcquired > 4) && slave.energy > 20) { + r += `${V.assistantName === "your personal assistant" ? `Your personal assistant` : `${V.assistantName}`} has been monitoring ${him} as ${he} mingles with other busily working slaves, analyzing ${his} sexual tastes. It seems ${he} is ${attractionDiscovery(slave)}`; + slave.attrKnown = 1; + } + } + + if (slave.devotion >= 50) { + r += `${He} does ${his} best for you, so ${he} frequently deserves a reward and never needs to be punished. `; + punishments = 0; + rewards = 3; + } else if (slave.devotion >= 20) { + r += `${He}'s obedient out of acceptance of ${his} place, so ${he} often deserves a reward and rarely needs to be punished. `; + punishments = 1; + rewards = 2; + } else if (slave.devotion > -20) { + if (slave.trust < -20) { + r += `${He}'s obedient out of fear, so ${he} only rarely deserves a reward and sometimes needs to be punished. `; + punishments = 1; + rewards = 1; + } else { + r += `${He}'s too trusting for obedience and often needs to be punished. `; + punishments = 2; + rewards = 0; + } + } else { + if (slave.trust < -50) { + r += `${He}'s only obedient out of terror, so ${he} sometimes needs to be punished. `; + punishments = 1; + rewards = 0; + } else { + r += `${He} hates you too much to obey, so ${he} needs constant punishment. `; + punishments = 3; + rewards = 0; + } + } + + if (rewards) { + switch (slave.standardReward) { + case "relaxation": + r += `${He}'s given free time, which ${he}`; + if (V.spa) { + r += `usually spends in ${V.spaName}${V.Attendant ? ` enjoying ${Attendant.slaveName}'s care` : ``}. `; + } else { + r += `usually spends relaxing in the penthouse slave quarters. `; + } + + if (slave.relationship) { + r += `${He} often asks to save these breaks so ${he} can spend them with ${his} ${slave.relationship === 1 ? `friend` : slave.relationship === 2 ? `best friend` : slave.relationship === 3 ? `friend with benefits` : slave.relationship === 4 ? `sweetheart` : `wife`}. `; + } + r += `These breaks are <span class="green">good for ${him}. </span>`; + slave.health += rewards; + break; + case "drugs": + r += `${He}'s <span class="hotpink">rewarded</span> with hits of mild recreational drugs, which <span class="red">isn't healthy,</span> but helps bind ${him} to you strongly. `; + slave.health -= rewards; + slave.devotion += rewards * 2; + break; + case "orgasm": + r += `${He}'s <span class="hotpink">rewarded</span> with`; + if (slave.clitPiercing === 3) { + r += `sustained orgasm from ${his} ${slave.dick ? `dick` : `clit`} piercing,`; + } else if (slave.releaseRules === "sapphic") { + r += `immediate sex with any nearby slave,`; + } else { + r += `a quick climax from a vibrator,`; + } + r += `<span class="green">boosting ${his} libido. </span>`; + if (slave.energy < 98) { + slave.energy += rewards; + } + slave.need -= rewards * 10; + slave.devotion += rewards; + break; + default: + r += `${He}'s <span class="hotpink">rewarded</span> `; + if (punishments && slave.standardPunishment === "situational") { + r += `and <span class="gold">punished</span>`; + } + r += `situationally, letting ${him} develop normally. `; + slave.devotion += rewards; + break; + } + } + + if (punishments) { + switch (slave.standardPunishment) { + case "confinement": + r += `When ${he} disobeys, ${he}'s`; + if (V.cellblock) { + r += `<span class="gold">put in $cellblockName</span>${V.Wardeness ? `, where ${he} can experience ${Wardeness.slaveName}'s tender mercies` : ``}. `; + } else { + r += `<span class="gold">shut up in a box</span> until ${he} behaves. `; + } + slave.trust -= punishments; + break; + case "whipping": + r += `When ${he} disobeys, ${he}'s <span class="gold">whipped,</span> not hard enough to mark ${him}, but hard enough to <span class="red">hurt,</span> breaking ${him} quickly. `; + slave.health -= punishments; + slave.trust -= 2 * punishments; + break; + case "chastity": + r += `When ${he} disobeys, ${he}'s <span class="gold">denied</span> ${his} next orgasm, <span class="red">reducing ${his} libido</span> but breaking ${him} to <span class="hotpink">sexual obedience. </span>`; + if (slave.energy > 2) { + slave.energy -= 2 * punishments; + } + slave.devotion += punishments; + slave.trust -= punishments; + break; + default: + if (!rewards || slave.standardReward !== "situational") { + r += `When ${he} disobeys, ${he}'s <span class="gold">punished</span> situationally, letting ${him} develop normally. `; + } + slave.trust -= punishments; + break; + } + } + + break; + + case "be the Schoolteacher": + case "learn in the schoolroom": + case "be the Stewardess": + case "work as a servant": + case "be the Milkmaid": + case "work in the dairy": + case "be the Farmer": + case "work as a farmhand": + case "be your Concubine": + case "serve in the master suite": + case "live with your Head Girl": + default: + } + } + } + + return r; + } + + function attractionDiscovery(slave) { + let r = ``; + + if (slave.attrXY <= 5) { + r += `<span class="red">disgusted by men</span>`; + } else if (slave.attrXY <= 15) { + r += `<span class="red">turned off by men</span>`; + } else if (slave.attrXY <= 35) { + r += `<span class="red">not attracted to men</span>`; + } else if (slave.attrXY <= 65) { + r += `indifferent to men`; + } else if (slave.attrXY <= 85) { + r += `<span class="green">attracted to men</span>`; + } else if (slave.attrXY <= 95) { + r += `<span class="green">aroused by men</span>`; + } else { + r += `<span class="green">passionate about men</span>`; + } + r += ` and `; + if (slave.attrXX <= 5) { + r += `<span class="red">disgusted by women</span>`; + } else if (slave.attrXX <= 15) { + r += `<span class="red">turned off by women</span>`; + } else if (slave.attrXX <= 35) { + r += `<span class="red">not attracted to women</span>`; + } else if (slave.attrXX <= 65) { + r += `indifferent to women. `; + } else if (slave.attrXX <= 85) { + r += `<span class="green">attracted to women</span>`; + } else if (slave.attrXX <= 95) { + r += `<span class="green">aroused by women</span>`; + } else { + r += `<span class="green">passionate about women</span>`; + } + + return r; + } + + function playerFetishPlay(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (slave.fetishKnown && slave.fetishStrength >= 60) { + switch (slave.fetish) { + case "submissive": + r += `hold ${him} down and fuck ${him}`; + break; + case "cumslut": + if (PC.dick) { + r += `cum in ${his} mouth`; + } else { + r += `use your strap-on on ${his} mouth`; + } + break; + case "humiliation": + r += `use ${him} in public`; + break; + case "buttslut": + r += `fuck ${his} butt`; + break; + case "boobs": + r += `fondle ${his} breasts`; + if (slave.lactation > 0) { + slave.lactationDuration = 2, slave.boobs -= slave.boobsMilk, slave.boobsMilk = 0; + } + break; + case "sadist": + r += `let ${him} help you abuse other slaves`; + break; + case "masochist": + r += `hurt ${him}`; + break; + case "dom": + r += `let ${him} help you use other slaves`; + break; + case "pregnancy": + if (isFertile(slave) && PC.dick) { + r += `put a baby in ${him}`; + } else if (slave.bellyPreg >= 1500 || slave.bellyImplant >= 1500) { + r += `enjoy ${his} fecund curves`; + } else { + r += `breed ${him}`; + } + break; + default: + r += `fuck ${him}`; + break; + } + } else { + r += `fuck ${him}`; + } + return r; + } + + function playerEnergy(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (energy > 0) { + if (energy === 3) { + r += `You have surplus sexual energy to burn, even when ${he} doesn't ask, and ${he}`; + if (slave.devotion < -20) { + r += `<span class="hotpink">hates ${himself}</span> for how often ${he} gets off on you relieving your needs with ${his} body. `; + } else if (slave.devotion <= 50 || slave.trust <= 20) { + r += `<span class="hotpink">gets used to being a sex slave</span> every time ${he} climaxes as you use ${him}. `; + } else { + r += `<span class="hotpink">eagerly looks forward</span> to each climax ${he} shares with you. `; + } + slave.devotion += 2, slave.need = 0; + SimpleSexAct.Player(slave, 10); + } else if (energy === 2) { + r += `You have surplus sexual energy to fuck ${him} whenever <<if $slaves[$i].relationship == -3>> you notice ${his} need<<else>>${he} forces ${himself} to ask<</if>>, and ${he} is <span class="hotpink">sexually dependent</span> on you. `; + slave.devotion++, slave.need -= 40; + SimpleSexAct.Player(slave, 5); + } else if (slave.relationship === -3) { + r += `You have little surplus sexual energy, but you make sure to keep your wife's needs in mind<<if $slaves[$i].devotion < -20>>, even if ${he} doesn't want it<</if>>. `; + slave.need -= 40; + SimpleSexAct.Player(slave, 5); + } else { + r += `You have little surplus sexual energy, and occasionally, ${he} asks in vain. `; + slave.need -= 20; + SimpleSexAct.Player(slave, 2); + } + } else { + r += `You have no surplus sexual energy, and ${he} asks in vain, <span class="gold">reducing ${his} trust</span> in you. `; + slave.trust--; + } + + return r; + } + + function playerDiscoversFetish(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (!slave.fetishKnown) { + if (energy > 0) { + if (energy > jsRandom(0, 5)) { + r += `You discover that ${he} really likes it when you`; + switch (slave.fetish) { + case "submissive": + r += `hold ${him} down and fuck ${him}; <span class="lightcoral">${he}'s a submissive!</span>`; + break; + case "cumslut": + if (PC.dick) { + r += `cum in ${his} mouth; <span class="lightcoral">${he}'s a cumslut!</span>`; + } else { + r += `use your strap-on in ${his} mouth; <span class="lightcoral">${he}'s a cumslut!</span>`; + } + break; + case "humiliation": + r += `use ${him} in public; <span class="lightcoral">${he}'s a humiliation fetishist!</span>`; + break; + case "buttslut": + r += `<<if canDoAnal($slaves[$i])>>fuck ${his} butt<<else>>tease ${his} anus<</if>>; <span class="lightcoral">${he}'s an anal slut!</span>`; + break; + case "boobs": + r += `fondle ${his} breasts; <span class="lightcoral">${he}'s a boob fetishist!</span>`; + break; + case "sadist": + r += `let ${him} help you abuse other slaves; <span class="lightcoral">${he}'s a sadist!</span>`; + break; + case "masochist": + r += `hurt ${him}; <span class="lightcoral">${he}'s a masochist!</span>`; + break; + case "dom": + r += `let ${him} help you use other slaves; <span class="lightcoral">${he}'s dominant!</span>`; + break; + case "pregnancy": + if (PC.dick) { + if (!slave.mpreg) { + r += `come <<if canDoVaginal($slaves[$i])>>inside<<else>>on<</if>> ${him}; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`; + } else { + r += `come <<if canDoAnal($slaves[$i])>>inside<<else>>on<</if>> ${him}; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`; + } + } else { + r += `talk dirty and call ${him} a mother; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`; + } + break; + default: + r += `fuck ${him}; <span class="lightcoral">${he}'s got a normal sexuality. </span>`; + break; + } + slave.fetishKnown = 1; + } + } + } + + return r; + } + + function playerDrugEffects(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (slave.balls > 0) { + if (slave.drugs === "testicle enhancement" || slave.drugs === "intensive testicle enhancement") { + if (slave.devotion >= 20 || slave.trust < -20) { + if (slave.hormoneBalance >= 100) { + r += `${He} can't seem to get enough cum out of ${his} terribly swollen balls in one orgasm to relieve the pressure:`; + if (slave.dick) { + r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } else { + r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } + r += `This forces ${him} to come to you for release many times a day, and ${he} <span class="mediumaquamarine">is desperately reliant</span>`; + if (slave.anus > 0 && canDoAnal(slave) && energy > 0) { + r += `on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside ${his} ass as a source of relief. `; + } else { + r += `on you for relief. `; + } + slave.trust += 2; + } else { + r += `${His} terribly swollen balls force ${him} to come to you for release several times a day, and ${he} <span class="mediumaquamarine">learns to rely</span>`; + if (slave.anus > 0 && canDoAnal(slave) && energy > 0) { + r += `on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside ${his} ass as a source of relief. `; + } else { + r += `on you for relief. `; + } + slave.trust++; + } + } else { + r += `${He} refuses to come to you for help with ${his} terribly swollen balls, no matter how backed up ${he} becomes. The intense blue-balling only <span class="mediumorchid">makes ${him} dislike you more. </span>`; + slave.devotion--; + } + } else if (slave.drugs === "hyper testicle enhancement") { + if (slave.devotion >= 20 || slave.trust < -20) { + if (slave.hormoneBalance >= 100) { + r += `${He} can't seem to get enough cum out of ${his} grotesquely swollen balls in one orgasm to get relieve the pressure:`; + if (slave.dick) { + r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } else { + r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } + r += `This forces ${him} to come to you for release many times a day, and ${he} <span class="mediumaquamarine">is desperately reliant</span>`; + if (slave.anus > 0 && canDoAnal(slave) && energy > 0) { + r += `on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside ${his} ass as a source of relief. `; + } else { + r += `on you for relief. `; + } + slave.trust += 2; + } else { + r += `${His} grotesquely swollen balls force ${him} to come to you for release dozens of times a day, and ${he} <span class="mediumaquamarine">is desperately reliant</span>`; + if (slave.anus > 0 && canDoAnal(slave) && energy > 0) { + r += `on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside ${his} ass as a source of relief. `; + } else { + r += `on you for relief. `; + } + slave.trust++; + } + } else { + r += `${He} refuses to come to you for help with ${his} grotesquely swollen balls, no matter how backed up and sore ${he} becomes. The intense blue-balling only <span class="mediumorchid">makes ${him} hate you more. </span>`; + slave.devotion -= 3; + } + } + } + + if (slave.drugs === "super fertility drugs" && canImpreg(slave, PC)) { + if (slave.devotion >= 20 || slave.trust < -20) { + r += `${His} reproductive system is in overdrive leading ${him} to come to you for insemination several times a day; ${he} <span class="mediumaquamarine">desperately hopes</span> for the day your seed takes root in ${his} womb. `; + slave.trust++; + } + } + + return r; + } + + function masturbationFetishPlay(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (slave.fetishKnown && slave.fetishStrength >= 60) { + switch (slave.fetish) { + case "submissive": + r += `frequently pretends to be getting held down and dominated. `; + break; + case "cumslut": + if (slave.dick > 5) { + r += `enjoys giving ${himself} head. `; + } else if (slave.dick) { + r += `enjoys licking up ${his} own cum. `; + } else { + r += `always has a dildo in ${his} mouth. `; + } + break; + case "humiliation": + r += `usually does it out in the open for all to see. `; + break; + case "buttslut": + if (slave.anus > 0) { + r += `usually pounds ${his} ass with the largest dildo ${he} can find. `; + } else { + r += `enjoys fiddling with ${his} virgin asshole. `; + } + break; + case "boobs": + r += `pays extra attention to ${his} breasts and nipples. `; + if (slave.lactation) { + slave.lactationDuration = 2, slave.boobs -= slave.boobsMilk, slave.boobsMilk = 0; + } else { + induceLactation(slave); + } + break; + case "sadist": + r += `frequently poses threats at ${himself}. `; + break; + case "masochist": + r += `frequently pretends to be getting held down and forcibly raped. `; + break; + case "dom": + r += `usually pretends to dominate ${himself}. `; + break; + case "pregnancy": + if (slave.belly > 1500) { + let belly = bellyAdjective(slave); + r += `always rubs and teases ${his} ${belly} belly while doing so. `; + } else if (isItemAccessible("a small empathy belly")) { + r += `frequently straps on a fake belly to enhance ${his} fun. `; + } else { + r += `frequently pretends to be`; + if (slave.balls) { + r += `getting a girl pregnant. `; + } else { + r += `getting knocked up. `; + } + } + break; + default: + if (slave.energy > 95) { + r += `strives to achieve as many orgasms as ${he} can in one session. `; + } else { + r += `quickly gets off and moves on. `; + } + break; + } + } else if (slave.energy > 95) { + r += `strives to achieve as many orgasms as ${he} can in one session. `; + } else { + r += `quickly gets off and moves on. `; + } + + return r; + } + + function masturbationDiscoversFetish(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (!slave.fetishKnown && jsRandom(1, 20) === 1) { + r += `However, you start to notice a trend in ${his} fantasies,`; + switch (slave.fetish) { + case "submissive": + r += `${he} likes to tie ${himself} up and boss ${himself} around; <span class="lightcoral">${he}'s a submissive!</span>`; + break; + case "cumslut": + if (slave.dick) { + r += `${he} often eats ${his} own cum when ${he}'s finished; <span class="lightcoral">${he}'s a cumslut!</span>`; + } else { + r += `${he} likes to have something, anything, in ${his} mouth while ${he} masturbates; <span class="lightcoral">${he}'s a cumslut!</span>`; + } + break; + case "humiliation": + r += `${he} tends to masturbate in places where others can walk in on ${him}; <span class="lightcoral">${he}'s a humiliation fetishist!</span>`; + break; + case "buttslut": + r += `${he} always pays special attention to ${his} butthole; <span class="lightcoral">${he}'s an anal slut!</span>`; + break; + case "boobs": + r += `${he} always has a hand to ${his} nipples; <span class="lightcoral">${he}'s a boob fetishist!</span>`; + if (slave.lactation) { + slave.lactationDuration = 2, slave.boobs -= slave.boobsMilk, slave.boobsMilk = 0; + } else { + induceLactation(slave); + } + break; + case "sadist": + r += `${he} tends to threaten ${his} toys; <span class="lightcoral">${he}'s a sadist!</span>`; + break; + case "masochist": + r += `${he} often to abuses ${himself}; <span class="lightcoral">${he}'s a masochist!</span>`; + break; + case "dom": + r += `${he} sometimes bosses ${his} toys around; <span class="lightcoral">${he}'s dominant!</span>`; + break; + case "pregnancy": + r += `${he} frequently pretends to either get pregnant, be pregnant, or get someone else pregnant; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`; + break; + default: + if (slave.energy > 95) { + r += `${he}'s always horny; <span class="lightcoral">${he}'s a nympho!</span>`; + } else { + r += `<span class="lightcoral">they are incredibly mundane. </span>`; + } + break; + } + } + + return r; + } + + function masturbationDrugEffects(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (slave.balls) { + if (slave.drugs === "testicle enhancement" || slave.drugs === "intensive testicle enhancement") { + if (slave.hormoneBalance >= 100) { + r += `${He} can't seem to get enough cum out of ${his} terribly swollen balls in one orgasm to get relieve the pressure:`; + if (slave.dick) { + r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } else { + r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } + r += `${He} masturbates as often as ${he} can, but <span class="mediumorchid">can't find relief. </span>`; + slave.devotion--; + } else { + r += `${His} terribly swollen balls force ${him} to masturbate several times a day, cultivating a need for sex that <span class="mediumorchid">${he} can't fulfill. </span>`; + slave.devotion--; + } + } else if (slave.drugs === "hyper testicle enhancement") { + if (slave.hormoneBalance >= 100) { + r += `${He} can't seem to get enough cum out of ${his} grotesquely swollen balls in one orgasm to get relieve the pressure:`; + if (slave.dick) { + r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } else { + r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } + r += `${He} masturbates non-stop, but <span class="mediumorchid">can't find relief. </span>`; + slave.devotion -= 3; + } else { + r += `${His} grotesquely swollen balls force ${him} to masturbate constantly, cultivating a need for sex that <span class="mediumorchid">${he} can't fulfill. </span>`; + slave.devotion--; + } + + if (slave.energy > 40) { + r += `The constant orgasms steadily lose their impact, <span class="red">weakening ${his} sex drive. </span>`; + slave.energy -= 2; + } + } + } + + if (slave.drugs === "super fertility drugs" && canGetPregnant(slave)) { + r += `${His} reproductive system is in overdrive,`; + if (slave.dick > 9) { + r += `leaving ${him} <span class="mediumorchid">desperately fucking ${himself}</span> in an effort to get pregnant since <span class="gold">you won't <<if $PC.dick == 1>>give ${him}<<else>>let ${him} find<</if>> the dick ${he} needs. </span>`; + if (canImpreg(slave, slave)) { + knockMeUp(slave, 5, 2, slave.ID, 1); + } + if (slave.mpreg && slave.anus === 0) { + r += `<span class="lime">${He} is so baby crazed ${he} takes ${his} own anal virginity. </span>`; + slave.anus++; + } else if (slave.vagina === 0) { + r += `<span class="lime">${He} is so baby crazed ${he} takes ${his} own virginity. </span>`; + slave.vagina++; + } + slave.devotion -= 3, slave.trust -= 2; + } else if (slave.devotion >= -20) { + r += `leaving ${him} <span class="mediumorchid">completely unfulfilled</span> since <span class="gold">you won't <<if $PC.dick == 1>>give ${him}<<else>>let ${him} find<</if>> the dick ${he} needs. </span>`; + slave.devotion -= 3, slave.trust -= 2; + } else { + r += `leaving ${him} desperate for a thorough seeding <span class="mediumorchid">that you've forbidden ${him} from having. </span>`; + slave.devotion -= 3; + } + } + + if (slave.energy >= 60) { + r += `${His} chronic masturbation <span class="red">steadily dulls</span> ${his} sexual pleasure. `; + slave.energy--; + } + + return r; + } + + function rapeFetish(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let + r = ``, + fuckCount; + + if (slave.fetishKnown && slave.fetishStrength >= 60) { + switch (slave.fetish) { + case "submissive": + r += `plead that other slaves fuck ${him}. `; + if (averageDick > 4) { + if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) { + if ((slave.anus * 40) - (averageDick * 5) < jsRandom(1, 100)) { + r += `<span class="lime">${His} asshole is loosened</span> during sex with other slaves, since most of the cocks ${he} enticed a dominating buttfuck from are `; + slave.anus++; + slave.counter.anal += 3, V.analTotal += 3; + } + + if (averageDick > 5) { + if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) { + if ((slave.vagina * 40) - (averageDick * 5) < jsRandom(1, 100)) { + r += `Since most of the slaves ${he} enticed a pounding from are extremely hung, <span class="lime">${his} cunt gets stretched out. </span>`; + slave.vagina++; + slave.counter.vaginal += 3, V.vaginalTotal += 3; + } + } + } + } + } + SimpleSexAct.Slave(slave, 7); + break; + case "cumslut": + r += `suck or be sucked by any slave ${he} fancies. `; + fuckCount = jsRandom(5, 15); + slave.counter.oral += fuckCount, V.oralTotal += fuckCount; + break; + case "humiliation": + r += `demand that other slaves let ${him} fuck them in public. `; + if (slave.assignmentVisible) { + if (!slave.rivalry) { + SlaveSort.IDs(V.RapeableIDs); + for (let dI = 0; dI < V.RapeableIDs.length; dI++) { + let + j = V.slaveIndices[V.RapeableIDs[dI]], + rival = slaves[j]; + + if (!rival.rivalry) { + if (rival.assignmentVisible || rival.assignment === slave.assignment) { + if (rival.devotion <= 20 && rival.trust < -20) { + r += `Craving a rush, ${he} repeatedly forces a reluctant <<= SlaveFullName($slaves[_j])>> to have sex with ${him} in public. $slaves[_j].slaveName resents this, and $slaves[$i].slaveName's ongoing sexual abuse <span class="lightsalmon">starts a rivalry</span> between them. `; + slave.rivalry = 1, rival.rivalry = 1, slave.rivalryTarget = rival.ID, rival.rivalryTarget = slave.ID; + SimpleSexAct.Slave(rival, 4); + if (canPenetrate(rival)) { + fuckCount = jsRandom(1, 3); + rival.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + } + } + } + } + } + } + SimpleSexAct.Slave(slave, 4); + if (canPenetrate(slave)) { + fuckCount = jsRandom(1, 3); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + break; + case "buttslut": + r += `demand that other slaves penetrate ${his} anus. `; + if (averageDick > 4) { + if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) { + if ((slave.anus * 30) - (averageDick * 5) < jsRandom(1, 100)) { + r += `Since most of the slaves ${he} demands anal sex from are extremely hung, <span class="lime">${his} asshole gets stretched out. </span>`; + slave.anus++; + } + } + } + fuckCount = jsRandom(5, 12); + slave.counter.anal += fuckCount, V.analTotal += fuckCount; + break; + case "boobs": + r += `demand that other slaves massage ${his} breasts. `; + if (slave.lactation) { + slave.lactationDuration = 2; + slave.boobs -= slave.boobsMilk, slave.boobsMilk = 0; + } else { + induceLactation(slave); + } + fuckCount = jsRandom(10, 25); + slave.counter.mammary += fuckCount, V.mammaryTotal += fuckCount; + break; + case "sadist": + r += `force the most reluctant slaves to let ${him} fuck them. `; + if (slave.assignmentVisible) { + if (!slave.rivalry) { + SlaveSort.IDs(V.RapeableIDs); + for (let dI = 0; dI < V.RapeableIDs.length; dI++) { + let + j = V.slaveIndices[V.RapeableIDs[dI]], + rival = slaves[j]; + + const { + // eslint-disable-next-line no-unused-vars + he2, him2, his2, hers2, himself2, boy2, He2, His2 + } = getPronouns(rival).appendSuffix('2'); + + if (!rival.rivalry) { + if (rival.assignmentVisible || rival.assignment === slave.assignment) { + if (rival.devotion <= 50) { + if (rival.sexualFlaw !== "none") { + r += `${He} focuses on ${SlaveFullName(rival)}, who has a sexual flaw ${slave.slaveName} can exploit. ${He} sadistically`; + switch (rival.sexualFlaw) { + case "hates oral": + r += `rapes the poor slave's face${!canAchieveErection(slave) ? ` with ${his} fingers` : ``}. ${rival.slaveName} hates oral`; + break; + case "hates anal": + case "hates penetration": + if (canDoVaginal(rival)) { + r += `rapes the poor slave's pussy${!canAchieveErection(slave) ? ` with ${his} fingers` : ``}. ${rival.slaveName} hates penetration`; + } else if (canDoAnal(rival)) { + r += `rapes the poor slave's ass${!canAchieveErection(slave) ? ` with ${his} fingers` : ``}. ${rival.slaveName} hates anal`; + } + break; + case "shamefast": + r += `rapes the poor slave in public. ${rival.slaveName} is terribly shamefast`; + break; + case "idealistic": + r += `rapes the poor slave every time ${he} catches ${him2} being romantic. ${rival.slaveName} is still idealistic`; + break; + default: + r += `rapes the poor slave every chance ${he} gets,`; + break; + } + r += `and the sexual abuse <span class="lightsalmon">starts a rivalry</span> between them. `; + slave.rivalry = 1, rival.rivalry = 1, slave.rivalryTarget = rival.ID, rival.rivalryTarget = slave.ID; + SimpleSexAct.Slave(rival, 4); + if (canPenetrate(rival)) { + fuckCount = jsRandom(1, 3); + rival.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + } + } + } + } + } + } + } + SimpleSexAct.Slave(slave, 4); + if (canPenetrate(slave)) { + fuckCount = jsRandom(1, 3); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + break; + case "masochist": + r += `demand that other slaves hurt ${him}. `; + if (averageDick > 4) { + if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) { + if ((slave.anus * 30) - (averageDick * 5) < jsRandom(1, 100)) { + r += `<span class="lime">${His} asshole is loosened</span> during sex with hung slaves, since ${he} often relies on painal to address ${his} needs. `; + slave.anus++; + slave.counter.anal += 3, V.analTotal += 3; + } + } + + if (averageDick > 5) { + if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) { + if ((slave.vagina * 30) - (averageDick * 5) < jsRandom(1, 100)) { + r += `Since ${he} usually demands that hung slaves fuck ${him} hard enough to make ${his} pussy hurt, <span class="lime">${his} cunt gets stretched out. </span>`; + slave.vagina++; + slave.counter.vaginal += 3, V.vaginalTotal += 3; + } + } + } + } + SimpleSexAct.Slave(slave, 12); + break; + case "dom": + r += `force other slaves to submit to ${him}. `; + if (slave.assignmentVisible) { + if (!slave.rivalry) { + SlaveSort.IDs(V.RapeableIDs); + for (let dI = 0; dI < V.RapeableIDs.length; dI++) { + let + j = V.slaveIndices[V.RapeableIDs[dI]], + rival = slaves[j]; + + if (!rival.rivalry) { + if (rival.assignmentVisible || rival.assignment === slave.assignment) { + if (rival.devotion <= 20 && rival.trust < -20) { + r += `${He} repeatedly rapes a reluctant <<= SlaveFullName($slaves[_j])>>; ${he} can't seem to keep ${his} hands off the poor slave, who can't avoid ${him}. Not surprisingly, $slaves[_j].slaveName resents this, and $slaves[$i].slaveName's ongoing sexual abuse <span class="lightsalmon">starts a rivalry</span> between them. `; + slave.rivalry = 1, rival.rivalry = 1, slave.rivalryTarget = rival.ID, rival.rivalryTarget = slave.ID; + SimpleSexAct.Slave(rival, 4); + } + } + } + } + } + } + SimpleSexAct.Slave(slave, 7); + if (canPenetrate(slave)) { + fuckCount = jsRandom(6, 9); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + break; + case "pregnancy": + r += `demand that other slaves indulge ${his} pregnancy fetish. `; + if (averageDick > 5) { + if (!slave.mpreg) { + if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) { + if ((slave.vagina * 40) - (averageDick * 5) < jsRandom(1, 100)) { + r += `Since ${he} constantly demands to be fucked deeply to get ${his} womb filled with cum, <span class="lime">${his} cunt gets stretched out. </span>`; + slave.vagina++; + fuckCount = jsRandom(7, 14); + slave.counter.vaginal += fuckCount, V.vaginalTotal += fuckCount; + } + } + } else { + if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) { + if ((slave.anus * 40) - (averageDick * 5) < jsRandom(1, 100)) { + r += `Since ${he} constantly demands to be fucked deeply to get ${his} womb filled with cum, <span class="lime">${his} ass gets stretched out. </span>`; + slave.anus++; + fuckCount = jsRandom(7, 14); + slave.counter.anal += fuckCount, V.analTotal += fuckCount; + } + } + } + } + + if (canPenetrate(slave)) { + fuckCount = jsRandom(6, 9); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + break; + default: + if (slave.energy > 95) { + r += `demand that your other slaves satisfy ${his} formidable appetites. `; + if (averageDick > 4) { + if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) { + if ((slave.anus * 30) - (averageDick * 5) < jsRandom(1, 100)) { + r += `<span class="lime">${His} asshole is loosened</span> during sex with well endowed slaves, since ${he}'s so addicted to sex all ${his} holes see heavy traffic. `; + slave.anus++; + slave.counter.anus += 3, slave.counter.anal += 3; + } + } + if (averageDick > 5) { + if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) { + if ((slave.vagina * 30) - (averageDick * 5) < jsRandom(1, 100)) { + r += `${He} indulges in non-stop sex with your well endowed slaves, so much so that <span class="lime">${his} cunt gets stretched out. </span>`; + slave.vagina++; + slave.counter.vaginal += 3, V.vaginalTotal += 3; + } + } + } + } + SimpleSexAct.Slave(slave, 7); + if (canPenetrate(slave)) { + fuckCount = jsRandom(3, 6); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + } else { + r += `demand that other slaves have sex with ${him}. `; + SimpleSexAct.Slave(slave, 7); + if (canPenetrate(slave)) { + fuckCount = jsRandom(3, 6); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + } + break; + } + } else { + r += `demand that other slaves have sex with ${him}. `; + SimpleSexAct.Slave(slave, 7); + if (canPenetrate(slave)) { + fuckCount = jsRandom(3, 6); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + } + + return r; + } + + function rapeDiscoversFetish(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (!slave.fetishKnown) { + if (jsRandom(1, 2) === 1) { + slave.fetishKnown = 1; + r += `You discover that ${he} really likes it when the other slaves`; + switch (slave.fetish) { + case "submissive": + r += `hold ${him} down and fuck ${him}; <span class="lightcoral">${he}'s a submissive!</span>`; + break; + case "cumslut": + r += `cum in ${his} mouth; <span class="lightcoral">${he}'s a cumslut!</span>`; + break; + case "humiliation": + r += `use ${him} in public; <span class="lightcoral">${he}'s a humiliation fetishist!</span>`; + break; + case "buttslut": + if (slave.anus > 0) { + r += `<<if canDoAnal($slaves[$i])>>fuck ${his} butt<<else>>tease ${his} anus<</if>>;`; + } else { + r += `tease ${his} virgin anus;`; + } + r += `<span class="lightcoral">${he}'s an anal slut!</span>`; + break; + case "boobs": + r += `fondle ${his} breasts; <span class="lightcoral">${he}'s a boob fetishist!</span>`; + if (slave.lactation) { + slave.lactationDuration = 2, slave.boobs -= slave.boobsMilk, slave.boobsMilk = 0; + } else { + induceLactation(slave); + } + break; + case "sadist": + r += `let ${him} abuse them; <span class="lightcoral">${he}'s a sadist!</span>`; + break; + case "masochist": + r += `hurt ${him}; <span class="lightcoral">${he}'s a masochist!</span>`; + break; + case "dom": + r += `let ${him} dominate them; <span class="lightcoral">${he}'s dominant!</span>`; + break; + case "pregnancy": + if (!slave.mpreg) { + r += `come <<if canDoVaginal($slaves[$i])>>inside<<else>>on<</if>> ${him}; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`; + } else { + r += `come <<if canDoAnal($slaves[$i])>>inside<<else>>on<</if>> ${him}; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`; + } + break; + default: + r += `fuck ${him}; <span class="lightcoral">${he}'s got a normal sexuality. </span>`; + break; + } + } + } + + return r; + } + + function consentFetish(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (slave.fetishKnown && slave.fetishStrength >= 60) { + switch (slave.fetish) { + case "submissive": + r += `usually pairing off with a more dominant slave. `; + if (largeDicks(slave, 40)) { + r += `<span class="lime">${His} asshole is loosened</span> during sex with other slaves, since most of the cocks ${he} lets dominate ${his} backdoor are very `; + slave.anus++; + slave.counter.anal += 3, V.analTotal += 3; + if (hugeDicks(slave, 40)) { + r += `Since most of the slaves ${he} takes a pounding from are extremely hung, <span class="lime">${his} cunt gets stretched out .</span>`; + slave.vagina++; + slave.counter.vagina += 3, V.vaginalTotal += 3; + } + } + SimpleSexAct.Slave(slave, 7); + break; + case "cumslut": + r += `and is popular for ${his} willingness to give oral. `; + fuckCount = jsRandom(5, 15); + slave.counter.oral += fuckCount, V.oralTotal += fuckCount; + break; + case "humiliation": + r += `usually asking them to fuck out in the open. `; + SimpleSexAct.Slave(slave, 7); + if (canPenetrate(slave)) { + fuckCount = jsRandom(1, 3); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + break; + case "buttslut": + r += `looking after anyone who will`; + if (slave.anus > 0) { + if (canDoAnal(slave)) { + r += `penetrate`; + fuckCount = jsRandom(5, 12); + slave.counter.anal += fuckCount, V.analTotal += fuckCount; + } else { + r += `tease`; + } + r += `${his} ass`; + } else { + r += `tease ${his} virgin anus`; + } + r += `in return. `; + if (largeDicks(slave, 30)) { + r += `Since most of the slaves ${he} enjoys anal sex with are extremely hung, <span class="lime">${his} asshole gets stretched out .</span>`; + } + break; + case "boobs": + r += `seeing to anyone who will show ${his} breasts some love. `; + if (slave.lactation) { + slave.lactationDuration = 2, slave.boobs -= slave.boobsMilk, slave.boobsMilk = 0; + } else { + induceLactation(slave); + } + fuckCount = jsRandom(10, 25); + slave.counter.mammary += fuckCount, V.mammaryTotal += fuckCount; + break; + case "sadist": + r += `usually pairing off with a masochistic slave willing to accept ${his} abuse. `; + SimpleSexAct.Slave(slave, 7); + if (canPenetrate(slave)) { + fuckCount = jsRandom(1, 3); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + break; + case "masochist": + r += `usually pairing off with an abusive slave. `; + if (largeDicks(slave, 30)) { + r += `<span class="lime">${His} asshole is loosened,</span> since ${he} begs hung slaves to fuck ${his} butt until ${he} cries. `; + slave.anus++; + slave.counter.anal += 3, V.analTotal += 3; + if (hugeDicks(slave, 30)) { + r += `Since ${he} eagerly begs hung slaves to fuck ${him} until ${he} cries, <span class="lime">${his} cunt gets stretched out .</span>`; + slave.vagina++; + slave.counter.vaginal += 3; V.vaginalTotal += 3; + } + } + SimpleSexAct.Slave(slave, 6); + break; + case "dom": + r += `usually pairing off with a submissive bitch. `; + SimpleSexAct.Slave(slave, 6); + if (canPenetrate(slave)) { + fuckCount = jsRandom(1, 3); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + break; + case "pregnancy": + r += `doing ${his} best to pair off with any pregnant slaves. `; + if (!slave.mpreg) { + if (hugeDicks(slave, 40)) { + r += `${He} also takes cock whenever ${he} can, begging to be fucked deeply to get ${his} womb filled with cum, so <span class="lime">${his} cunt gets stretched out. </span>`; + slave.vagina++; + slave.counter.vagina += 3, V.vaginalTotal += 3; + } + } else { + if (hugeDicks(slave, 40)) { + r += `${He} also takes cock whenever ${he} can, begging to be fucked deeply to get ${his} womb filled with cum, so <span class="lime">${his} ass gets stretched out. </span>`; + slave.anus++; + slave.counter.anal += 3, V.analTotal += 3; + } + } + SimpleSexAct.Slave(slave, 7); + if (canPenetrate(slave)) { + fuckCount = jsRandom(6, 9); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + break; + default: + if (slave.energy > 95) { + r += `and has to give out a lot of favors to get enough attention for ${himself}. `; + if (largeDicks(slave, 30)) { + r += `<span class="lime">${His} asshole is loosened</span> during sex with well endowed slaves, since ${he}'s so addicted to sex all ${his} holes see heavy traffic. `; + slave.anus++; + slave.counter.anal += 3, V.analTotal += 3; + if (hugeDicks(slave, 30)) { + r += `${He} indulges in non-stop sex with your well endowed slaves, so much so that <span class="lime">${his} cunt gets stretched out. </span>`; + slave.vagina++; + slave.counter.vaginal += 3, V.vaginalTotal += 3; + } + } + SimpleSexAct.Slave(slave, 7); + if (canPenetrate(slave)) { + fuckCount = jsRandom(3, 6); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + } else { + r += `doing ${his} best to get off and move on. `; + SimpleSexAct.Slave(slave, 7); + if (canPenetrate(slave)) { + fuckCount = jsRandom(3, 6); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + } + break; + } + } else { + r += `doing ${his} best to get off and move on. `; + SimpleSexAct.Slave(slave, 7); + if (canPenetrate(slave)) { + fuckCount = jsRandom(3, 6); + slave.counter.penetrative += fuckCount, V.penetrativeTotal += fuckCount; + } + } + + return r; + } + + function consentDiscoversFetish(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (!slave.fetishKnown) { + if (jsRandom(1, 2) === 1) { + slave.fetishKnown = 1; + r += `However, one of ${his} partners`; + switch (slave.fetish) { + case "submissive": + r += `holds ${him} down, and ${he} loves it; <span class="lightcoral">${he}'s a submissive!</span>`; + break; + case "cumslut": + r += `finally has to push ${him} away to get ${him} to stop sucking; <span class="lightcoral">${he}'s a cumslut!</span>`; + break; + case "humiliation": + r += `fucks ${him} in public, and ${he} loves it; <span class="lightcoral">${he}'s a humiliation fetishist!</span>`; + break; + case "buttslut": + if (slave.anus > 0) { + r += `<<if canDoAnal($slaves[$i])>>fucks ${his} butt<<else>>teases ${his} anus<</if>>, and ${he} loves it;`; + } else { + r += `teases ${his} virgin anus, and ${he} loves it;`; + } + r += `<span class="lightcoral">${he}'s an anal slut!</span>`; + break; + case "boobs": + r += `fondles ${his} breasts, and ${he} loves it; <span class="lightcoral">${he}'s a boob fetishist!</span>`; + if (slave.lactation) { + slave.lactationDuration = 2, slave.boobs -= slave.boobsMilk, slave.boobsMilk = 0; + } else { + induceLactation(slave); + } + break; + case "sadist": + r += `asks $slaves[$i].slaveName to hit ${him}, which $slaves[$i].slaveName enjoys doing; <span class="lightcoral">${he}'s a sadist!</span>`; + break; + case "masochist": + r += `hits $slaves[$i].slaveName while fucking ${him}, which only makes ${him} hornier; <span class="lightcoral">${he}'s a masochist!</span>`; + break; + case "dom": + r += `asks $slaves[$i].slaveName to make them $slaves[$i].slaveName's bitch, which $slaves[$i].slaveName manages like a natural; <span class="lightcoral">${he}'s dominant!</span>`; + break; + case "pregnancy": + r += `pretends to get ${him} pregnant, which ${he} really enjoys; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`; + break; + default: + if (slave.energy > 95) { + r += `discovers that ${he} cannot be satisfied; <span class="lightcoral">${he}'s a nympho!</span>`; + } else { + r += `discovers that ${he} isn't terribly exciting; <span class="lightcoral">${he}'s got a normal sexuality. </span>`; + } + } + } + } + + return r; + } + + function permissiveDrugEffects(slave) { + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let r = ``; + + if (slave.balls) { + if (slave.drugs === "testicle enhancement" || slave.drugs === "intensive testicle enhancement") { + if (slave.devotion >= 20 || slave.trust < -20) { + if (slave.hormoneBalance >= 100) { + r += `${He} can't seem to get enough cum out of ${his} terribly swollen balls in one orgasm to relieve the pressure:`; + if (slave.dick) { + r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } else { + r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } + r += `${He} is very reliant on your other slaves to help ${him}, which <span class="mediumaquamarine">habituates ${him}</span> to slave sex. `; + } else { + r += `${His} terribly swollen balls force ${him} to rely on other slaves for release several times a day, and jetting cum into and onto them <span class="mediumaquamarine">habituates ${him}</span> to slave sex. `; + } + slave.trust++; + } else { + r += `${He} can't seem to get enough cum out of ${his} terribly swollen balls to relieve the pressure and is either unwilling or unable to get help with it, something ${he} <span class="mediumorchid">blames you for. </span>`; + slave.devotion--; + } + } else if (slave.drugs === "hyper testicle enhancement") { + if (slave.devotion >= 20 || slave.trust < -20 || !canPenetrate(slave)) { + if (slave.hormoneBalance >= 100) { + r += `${He} can't seem to get enough cum out of ${his} grotesquely swollen balls in one orgasm to get relieve the pressure:`; + if (slave.dick) { + r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } else { + r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `; + } + r += `${He} is completely dependent on your other slaves to help ${him}, which <span class="mediumaquamarine">habituates ${him}</span> to slave sex. `; + } else { + r += `${His} grotesquely swollen balls force ${him} to rely on other slaves for release throughout times a day, and swelling them with cum <span class="mediumaquamarine">habituates ${him}</span> to slave sex, though you have to take precautions so ${he} doesn't knock up your entire stock. `; + } + slave.trust++; + } else { + r += `${He} can't seem to get enough cum out of ${his} grotesquely swollen balls to relieve the pressure and is either unwilling or unable to get help with it, something ${he} <span class="mediumorchid">blames you for. </span>`; + slave.devotion--; + } + } + } + if (slave.drugs === "super fertility drugs" && canGetPregnant(slave)) { + r += `${His} reproductive system is in overdrive leading ${him} to seek out any dicked slaves ${he} can find several times a day. ${He} <span class="mediumaquamarine">desperately longs</span> for the day ${his} efforts fill ${his} womb with child. `; + slave.trust++; + } + + return r; + } + + function largeDicks(slave, x) { + if (averageDick > 4) { + if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) { + if ((slave.anus * x) - (averageDick * 5) < jsRandom(1, 100)) { + return true; + } + } + } + return false; + } + + function hugeDicks(slave, x) { + if (averageDick > 5) { + if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) { + if ((slave.vagina * x) - (averageDick * 5) < jsRandom(1, 100)) { + return true; + } + } + } + return false; + } + + return saRules; +})();