diff --git a/src/endWeek/saRules_old.js b/src/endWeek/saRules_old.js index ca6e16c82953dd1698151adc5388c9ca7f988aab..38c77865929ecbf4e191dee2921fe691d3fc6a75 100644 --- a/src/endWeek/saRules_old.js +++ b/src/endWeek/saRules_old.js @@ -69,23 +69,37 @@ } 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. `; + if (!App.Utils.hasNonassignmentSex(slave) && release.masturbation === 0) { + if (release.master === 1) { + 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; + slave.need -= 10; + } else { + r += `occasionally comes to the penthouse to beg for sexual release. `; + } } else { - r += `occasionally comes to the penthouse to beg for sexual release. `; + r += `doesn't mind having to come to the penthouse to beg for sexual release. `; } + r += `${playerEnergy(slave)}`; } else { - r += `doesn't mind having to come to the penthouse to beg for sexual release. `; + r += `willingly comes up to the penthouse and begs you to ${playerFetishPlay(slave)} whenever the urge strikes. ${playerEnergy(slave)}`; } - r += `${playerEnergy(slave)}`; + r += `${playerDiscoversFetish(slave)} ${playerDrugEffects(slave)}`; } else { - r += `willingly comes up to the penthouse and begs you to ${playerFetishPlay(slave)} whenever the urge strikes. ${playerEnergy(slave)}`; + if (disobedience(slave) > jsRandom(0, 100)) { + r += `is forbidden to masturbate or seek sexual release. In ${his} <span class="mediumorchid">intense frustration</span> ${he} breaks the rules and is <span class="gold">severely punished</span> for illicit masturbation. `; + slave.devotion -= 2; + slave.trust -= 2; + slave.need -= 10; + } else { + r += `is forbidden to masturbate or seek sexual release, which <span class="mediumorchid">highly frustrates</span> ${him}. `; + slave.devotion -= 2; + } } - r += `${playerDiscoversFetish(slave)} ${playerDrugEffects(slave)}`; - } else if (release === "masturbation") { + } else if (!App.Utils.hasNonassignmentSex(slave) && release.masturbation === 1) { 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. `; @@ -105,8 +119,13 @@ 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; + r += `<span class="mediumaquamarine">trusts your judgment</span> that only ${he} really knows how to pleasure ${himself}`; + if (release.master === 0) { + r += `, though ${he} <span class="mediumorchid">often wonders why you don't use ${him}. </span>`; + slave.devotion -= 2; + } else { + r += `.`; + } slave.trust++; slave.need = 0; } @@ -115,26 +134,32 @@ r += `When ${he} does play with ${himself}, ${he} ${masturbationFetishPlay(slave)} ${masturbationDiscoversFetish(slave)}`; } r += `${masturbationDrugEffects(slave)}`; - } else { - if (!V.universalRulesConsent) { + } else { // hasNonassignmentSex is true + if (!App.Utils.hasFamilySex(slave) && release.slaves === 0) { + // no family and no other slaves, so must be his partner + r += `finds frequent sexual release with his ${relationshipTerm(slave)} <span class="lightgreen">${getSlave(slave.relationshipTarget).slaveName}</span>, which he is <span class="mediumaquamarine">thankful for</span>. `; + slave.need -= 20; // TODO: probably should be based on BOTH slaves' need, leaving the less needy partner slighly frustrated + slave.trust++; + } else if (!V.universalRulesConsent) { + const whom = (release.slaves === 1) ? `other slaves` : `${his} family`; if (slave.devotion <= 20) { if (slave.trust > -20) { - if (release === "permissive") { + if (release.masturbation === 1) { 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. `; + r += `refuses to ask ${whom} 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. `; + if (release.masturbation === 1) { + r += `prefers to masturbate rather than demanding sex from ${whom}, <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. `; + r += `is forced by the urges induced by the food to demand sex from ${whom}, and <span class="hotpink">hates ${himself}</span> for it. `; slave.devotion++; slave.need = 0; } @@ -151,32 +176,32 @@ } 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. `; + if (release.masturbation === 1) { + r += `prefers to masturbate rather than asking ${whom} 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. `; + r += `refuses to ask ${whom} 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, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `; + if (release.masturbation === 1) { + r += `prefers to masturbate rather than trading sex with ${whom}, <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. `; + r += `is forced by the urges induced by the food to swap sex with ${whom}, 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)}`; + r += `<span class="hotpink">accepts having to ask</span> ${whom} 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)}`; + r += `<span class="mediumaquamarine">relies</span> on your ${whom} for mutual satisfaction, ${consentFetish(slave)} ${consentDiscoversFetish(slave)}`; slave.trust++; slave.need = 0; } @@ -281,7 +306,7 @@ 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") { + } else if (release.slaves === 1) { 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. `; @@ -1004,16 +1029,17 @@ let r = ``, + who = (slave.rules.release.slaves === 1) ? `other slaves` : `${his} family`, // should be the only two choices if we get here fuckCount; if (slave.fetishKnown && slave.fetishStrength >= 60) { switch (slave.fetish) { case "submissive": - r += `plead that other slaves fuck ${him}. `; + r += `plead that ${who} 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 `; + r += `<span class="lime">${His} asshole is loosened</span> during sex with ${who}, since most of the cocks ${he} enticed a dominating buttfuck from are `; slave.anus++; slave.counter.anal += 3; V.analTotal += 3; @@ -1040,7 +1066,7 @@ V.oralTotal += fuckCount; break; case "humiliation": - r += `demand that other slaves let ${him} fuck them in public. `; + r += `demand that ${who} let ${him} fuck them in public. `; if (assignmentVisible(slave)) { if (!slave.rivalry) { SlaveSort.IDs(V.RapeableIDs); @@ -1077,7 +1103,7 @@ } break; case "buttslut": - r += `demand that other slaves penetrate ${his} anus. `; + r += `demand that ${who} penetrate ${his} anus. `; if (averageDick > 4) { if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) { if ((slave.anus * 30) - (averageDick * 5) < jsRandom(1, 100)) { @@ -1091,7 +1117,7 @@ V.analTotal += fuckCount; break; case "boobs": - r += `demand that other slaves massage ${his} breasts. `; + r += `demand that ${who} massage ${his} breasts. `; if (slave.lactation) { slave.lactationDuration = 2; slave.boobs -= slave.boobsMilk; @@ -1104,7 +1130,11 @@ V.mammaryTotal += fuckCount; break; case "sadist": - r += `force the most reluctant slaves to let ${him} fuck them. `; + if (slave.rules.release.slaves === 1) { + r += `force the most reluctant slaves to let ${him} fuck them. `; + } else { // should imply hasFamilySex + r += `force ${his} most reluctant family members to let ${him} fuck them. `; + } if (assignmentVisible(slave)) { if (!slave.rivalry) { SlaveSort.IDs(V.RapeableIDs); @@ -1171,7 +1201,7 @@ } break; case "masochist": - r += `demand that other slaves hurt ${him}. `; + r += `demand that ${who} hurt ${him}. `; if (averageDick > 4) { if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) { if ((slave.anus * 30) - (averageDick * 5) < jsRandom(1, 100)) { @@ -1196,7 +1226,7 @@ SimpleSexAct.Slave(slave, 12); break; case "dom": - r += `force other slaves to submit to ${him}. `; + r += `force ${who} to submit to ${him}. `; if (assignmentVisible(slave)) { if (!slave.rivalry) { SlaveSort.IDs(V.RapeableIDs); @@ -1228,7 +1258,7 @@ } break; case "pregnancy": - r += `demand that other slaves indulge ${his} pregnancy fetish. `; + r += `demand that ${who} indulge ${his} pregnancy fetish. `; if (averageDick > 5) { if (!slave.mpreg) { if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) { @@ -1261,7 +1291,7 @@ break; default: if (slave.energy > 95) { - r += `demand that your other slaves satisfy ${his} formidable appetites. `; + r += `demand that ${who} 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)) { @@ -1289,7 +1319,7 @@ V.penetrativeTotal += fuckCount; } } else { - r += `demand that other slaves have sex with ${him}. `; + r += `demand that ${who} have sex with ${him}. `; SimpleSexAct.Slave(slave, 7); if (canPenetrate(slave)) { fuckCount = jsRandom(3, 6); @@ -1300,7 +1330,7 @@ break; } } else { - r += `demand that other slaves have sex with ${him}. `; + r += `demand that ${who} have sex with ${him}. `; SimpleSexAct.Slave(slave, 7); if (canPenetrate(slave)) { fuckCount = jsRandom(3, 6);