diff --git a/src/endWeek/saServeYourOtherSlaves.js b/src/endWeek/saServeYourOtherSlaves.js new file mode 100644 index 0000000000000000000000000000000000000000..7b7991c4adb4b632d0283651d37211e9b77fe5d1 --- /dev/null +++ b/src/endWeek/saServeYourOtherSlaves.js @@ -0,0 +1,1462 @@ +App.SlaveAssignment.serveYourOtherSlaves = (function() { + "use strict"; + + let r; + + // eslint-disable-next-line no-unused-vars + let he, him, his, hers, himself, girl, loli, He, His; + // eslint-disable-next-line no-unused-vars + let he2, him2, his2, hers2, himself2, girl2, loli2, He2, His2; + + let jobType; + let fetishChange; + + let oralUse; + let analUse; + let vaginalUse; + let mammaryUse; + let penetrativeUse; + let fuckCount; + let load; + let cervixPump; + + let dom; + let domSlave; + let domName; + let domRace; + + let subName; + let subRace; + let hands; + + return saServeYourOtherSlaves; + + /** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ + function saServeYourOtherSlaves(slave) { + r = []; + fetishChange = fetishChangeChance(slave); + + ({ + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, girl, He, His, loli + } = getPronouns(slave)); + + oralUse = 0; + analUse = 0; + vaginalUse = 0; + mammaryUse = 0; + penetrativeUse = 0; + cervixPump = 0; + fuckCount = 0; + load = 0; + + subName = slave.slaveName; + hands = hasBothArms(slave) ? "hands" : "hand"; + + validateJob(slave); + if (jobType === "stud") { + studLife(slave); + } else if (jobType === "cumdump") { + cumdumpLife(slave); + } else if (jobType === "sub") { + subLife(slave); + } + sexualSatiation(slave); + physicalEffects(slave); + mentalEffects(slave); + slaveSkills(slave); + + return r.join(" "); + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function validateJob(slave) { + if (slave.subTarget === -1) { + jobType = "stud"; + } else if (slave.subTarget === 0) { + jobType = "cumdump"; + } else { + // validate .subTarget + dom = V.slaveIndices[slave.subTarget]; + if (dom !== undefined) { + jobType = "sub"; + domSlave = V.slaves[dom]; + domName = domSlave.slaveName; + } else { + jobType = "cumdump"; + slave.subTarget = 0; + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function studLife(slave) { + if (slave.fuckdoll > 0) { + r.push(`is positioned as a sperm dispenser for fertile slaves to ride or milk at their discretion.`); + } else if (slave.fetish === "mindbroken") { + if (slave.career === "a breeding bull" && canWalk(slave)) { + r.push(`is allowed to freely breed any fertile slaves ${he} can find.`); + } else { + r.push(`is left as a sperm dispenser for fertile slaves to ride or milk at their discretion.`); + } + } else if (slave.career === "a breeding bull") { + r.push(`sees it as ${his} duty to impregnate everyone in ${his} path. A role ${he} <span class="hotpink">appreciates</span> you <span class="mediumaquamarine">untrusting ${him} with.</span>`); + slave.devotion += 1; + slave.trust += 1; + if (slave.fetishKnown === 1) { + if (slave.fetish === "pregnancy") { + r.push(`${He} <span class="hotpink">thoroughly enjoys</span> ${his} dream-like, pregnancy-centered life.`); + slave.devotion += 1; + } else if (slave.fetish === "dom") { + r.push(`${He} <span class="hotpink">thoroughly enjoys</span> having permission to mount and breed any slave ${he} wants.`); + slave.devotion += 1; + } + } + } else if (slave.devotion <= 20) { + if (slave.trust >= -20) { + r.push(`is bound and laid out to serve as a source of cum for your fertile slaves. Being tied up and left to the wolves <span class="gold">frightens ${him} into obedience.</span>`); + slave.trust -= 5; + if (slave.fetishKnown === 1) { + if (slave.fetish === "pregnancy") { + r.push(`${He} secretly gets off at the thought of all the wombs ${he} will seed <span class="hotpink">and can't wait to get to work.</span>`); + slave.devotion += 1; + } else if (slave.fetish === "submissive") { + r.push(`${He} secretly enjoys the prospect of being pinned by mothers-to-be and milked to orgasm; <span class="hotpink">${he} needs it.</span>`); + slave.devotion += 1; + } + } + } else { + r.push(`is forced to serve as a sperm dispenser for your fertile slaves. Being taken advantage of in such a way <span class="hotpink">habituates ${him} to subservience</span> and <span class="gold">keeps ${him} fearful.</span>`); + slave.trust -= 2; + slave.devotion += 2; + if (slave.fetishKnown === 1) { + if (slave.fetish === "pregnancy") { + r.push(`${He} privately enjoys the prospect of fertilizing so many eggs <span class="hotpink">and accepts it.</span>`); + slave.devotion += 1; + } else if (slave.fetish === "masochist") { + r.push(`${He} privately enjoys the prospect of rough treatment <span class="hotpink">and accepts it.</span>`); + slave.devotion += 1; + } else if (slave.fetish === "submissive") { + r.push(`${He} privately enjoys the prospect of being treated as a mere tool <span class="hotpink">and accepts it.</span>`); + slave.devotion += 1; + } + } + } + } else { + r.push(`obediently seeds your fertile slaves. Being used as a stud <span class="hotpink">keeps ${him} in a good frame of mind</span> and <span class="mediumaquamarine">builds ${his} trust in you.</span> `); + slave.devotion += 2; + slave.trust += 2; + if (slave.fetishKnown === 1) { + if (slave.fetish === "pregnancy") { + r.push(`${He} <span class="hotpink">openly enjoys</span> getting the honor of fathering new slaves on your behalf.`); + slave.devotion += 1; + } else if (slave.fetish === "dom") { + r.push(`${He} <span class="hotpink">openly enjoys</span> the prospect of laying claim to any womb that comes ${his} way.`); + slave.devotion += 1; + } + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function cumdumpLife(slave) { + if (slave.devotion <= 20) { + if (slave.trust >= -20) { + r.push(`is forced to serve your other slaves' sexual needs by constant punishment. Being castigated and raped <span class="gold">frightens ${him} into obedience.</span>`); + slave.trust -= 5; + if (slave.sexualQuirk === "strugglefuck queen") { + r.push(`${He} secretly likes being raped <span class="hotpink">and wants more.</span>`); + slave.devotion += 1; + } else if (slave.sexualQuirk === "gagfuck queen") { + r.push(`${He} secretly enjoys the oral abuse <span class="hotpink">and wants more.</span>`); + slave.devotion += 1; + } else if (slave.sexualQuirk === "painal queen") { + r.push(`${He} secretly gets off on assrape <span class="hotpink">and wants more.</span>`); + slave.devotion += 1; + } + } else { + r.push(`is forced to serve your other slaves' sexual needs by ${his} fear. Being used on pain of punishment <span class="hotpink">habituates ${him} to subservience</span> and <span class="gold">keeps ${him} fearful.</span>`); + slave.trust -= 2; + slave.devotion += 2; + if (slave.sexualQuirk === "strugglefuck queen") { + r.push(`${He} privately likes being abused <span class="hotpink">and accepts it.</span>`); + slave.devotion += 1; + } else if (slave.sexualQuirk === "gagfuck queen") { + r.push(`${He} privately likes being an oral toy and <span class="hotpink">and accepts it.</span>`); + slave.devotion += 1; + } else if (slave.sexualQuirk === "painal queen") { + r.push(`${He} privately likes being an anal toy <span class="hotpink">and accepts it.</span>`); + slave.devotion += 1; + } + } + } else { + r.push(`obediently serves your other slaves' sexual needs. Being used as a sexual outlet for everyone <span class="hotpink">keeps ${him} in a good frame of mind.</span>`); + slave.devotion += 2; + if (slave.sexualQuirk === "strugglefuck queen") { + r.push(`${He} <span class="hotpink">openly enjoys</span> how other slaves can take whatever they want from ${him}.`); + slave.devotion += 1; + } else if (slave.sexualQuirk === "gagfuck queen") { + r.push(`${He} <span class="hotpink">openly enjoys</span> how other slaves can order ${him} to lick, suck or blow anything at all.`); + slave.devotion += 1; + } else if (slave.sexualQuirk === "painal queen") { + r.push(`${He} <span class="hotpink">openly enjoys</span> how other slaves can shove anything up ${his} butt without asking first.`); + slave.devotion += 1; + } + } + if (hasAnyLegs(slave) && !canWalk(slave)) { + r.push(`Since ${he}'s forced to crawl around, ${he}'s especially vulnerable.`); + } + if (V.subSlaves <= 0) { + V.subSlaves = 1; + } + if ((V.dormitoryPopulation + V.roomsPopulation - V.subSlaves) > 5) { + load = (V.subSlaves / (V.dormitoryPopulation + V.roomsPopulation - V.subSlaves)); + if (load > .8) { + r.push(`Since there are enough other slaves servicing your stock alongside ${him}, ${he} sees limited action.`); + } else if (load > .5) { + r.push(`With ${his} servicing sisters, ${his} workload is reasonable and ${he} isn't overworked.`); + } else if (load > .2) { + r.push(`While ${he} may have support in servicing your stock, ${he} is <span class="red">overwhelmed by their collective need.</span>`); + slave.health.tired += 10; + if (slave.sexualFlaw === "self hating") { + r.push(`With so many other slaves taking advantage of ${his} body, ${his} life's purpose of <span class="hotpink">being nothing more than a piece of meat</span> has come true.`); + slave.devotion += 5; + } else if (slave.sexualFlaw === "attention whore") { + r.push(`With little competition for ${his} body and so many slaves eager to use ${him}, ${his} dreams of being the center of attention are <span class="hotpink">have come true.</span>`); + if (slave.weight < 10 && slave.belly < 100) { + if (canDoVaginal(slave) && slave.vagina > 0 && canDoAnal(slave) && slave.anus > 0) { + r.push(`${He} ends each day cradling ${his} cum swollen stomach, marveling at the "attention" bestowed upon ${him}.`); + } else if ((canDoVaginal(slave) && slave.vagina > 0) || (canDoAnal(slave) && slave.anus > 0)) { + r.push(`By the end of the day, ${his} stomach has a noticeable bulge to it from all the "attention" bestowed upon ${him}.`); + } + } + slave.devotion += 5; + } else if (slave.energy > 95) { + r.push(`With so many other slaves using ${his} body, ${his} <span class="hotpink">burning libido is finally sated.</span>`); + slave.devotion += 2; + } + } else { + r.push(`Since`); + if (V.subSlaves === 1) { + r.push(`${he} is the only slave`); + } else { + r.push(`there are so few other slaves`); + } + r.push(`servicing your stock, ${he} is used to the <span class="red">point of exhaustion.</span>`); + slave.health.tired += 30; + healthDamage(slave, 10); + if (V.averageDick > 5) { + if (canDoVaginal(slave) && slave.vagina > 0 && slave.vagina < 4) { + if ((slave.vagina * 40) - (V.averageDick * 5) < jsRandom(1, 100)) { + r.push(`So many huge dicks pistoning in and out of ${his} pussy <span class="lime">loosen ${him} up.</span>`); + slave.vagina++; + slave.counter.vaginal += 3; + V.vaginalTotal += 3; + } + } + if (canDoAnal(slave) && slave.anus > 0 && slave.anus < 4) { + if ((slave.anus * 40) - (V.averageDick * 5) < jsRandom(1, 100)) { + r.push(`<span class="lime">${His} asshole is loosened</span> after being pounded by so many giant cocks.`); + slave.anus++; + slave.counter.anal += 3; + V.analTotal += 3; + } + } + } + if (slave.sexualFlaw === "self hating") { + r.push(`With so many other slaves taking advantage of ${his} body, ${his} life's purpose of <span class="hotpink">being nothing more than a piece of meat</span> has come true.`); + slave.devotion += 5; + } else if (slave.sexualFlaw === "attention whore") { + r.push(`With little competition for ${his} body and so many slaves eager to use ${him}, ${his} dreams of being the center of attention are <span class="hotpink">have come true.</span>`); + if (slave.weight < 10 && slave.belly < 100) { + if (canDoVaginal(slave) && slave.vagina > 0 && canDoAnal(slave) && slave.anus > 0) { + r.push(`${He} ends each day cradling ${his} cum swollen stomach, marveling at the "attention" bestowed upon ${him}.`); + } else if ((canDoVaginal(slave) && slave.vagina > 0) || (canDoAnal(slave) && slave.anus > 0)) { + r.push(`By the end of the day, ${his} stomach has a noticeable bulge to it from all the "attention" bestowed upon ${him}.`); + } + } + slave.devotion += 5; + } else if (slave.energy > 95) { + r.push(`With so many other slaves using ${his} body, ${his} <span class="hotpink">burning libido is finally sated.</span>`); + slave.devotion += 2; + } + } + } else { + r.push(`Since you have so few slaves in need of release, ${he} sees little action.`); + } + fuckCount = Math.ceil((((V.dormitoryPopulation + V.roomsPopulation) + jsRandom(((V.dormitoryPopulation + V.roomsPopulation) * 1), (V.dormitoryPopulation + V.roomsPopulation) * 7)) / V.subSlaves) * healthPenalty(slave)); + SimpleSexAct.Slave(slave, fuckCount); + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function subLife(slave) { + ({ + // eslint-disable-next-line no-unused-vars + he2, him2, his2, hers2, himself2, girl2, He2, His2, loli2 + } = getPronouns(domSlave)); + + if (V.seeRace === 1) { + domRace = domSlave.race; + subRace = slave.race; + } else { + domRace = ""; + subRace = ""; + } + + r.push(`is serving <strong>${domName}</strong> this week.`); + if (hasAnyLegs(domSlave) && !canWalk(slave)) { + r.push(`Since ${subName} cannot stand, ${domName} has no trouble taking whatever ${he2} wants from ${him}.`); + } else if (isAmputee(domSlave)) { + r.push(`Since ${he2} has no limbs, ${domName} has to put forth extra effort taking whatever ${he2} wants from ${subName}.`); + } + + if (canPenetrate(domSlave)) { + if (slave.anus === 0 && canDoAnal(slave) && slave.vagina === 0 && canDoVaginal(slave)) { + r.push(`Of course, ${he2} respects ${subName}'s virgin holes and does not penetrate ${him}.`); + } else if (slave.anus === 0 && canDoAnal(slave)) { + r.push(`Of course, ${he2} respects ${subName}'s anal virginity and does not penetrate ${him} there.`); + } else if (slave.vagina === 0 && canDoVaginal(slave)) { + r.push(`Of course, ${he2} respects ${subName}'s virginity and does not penetrate ${his} pussy.`); + } + } + + if (domSlave.fetishKnown === 1 && domSlave.fetishStrength > 60 && domSlave.fetish === "buttslut") { + if (canPenetrate(slave) && canDoAnal(domSlave) && (domSlave.anus !== 0)) { + if (slave.devotion < -20) { + r.push(`Since ${domName} loves anal, ${subName} finds ${himself} forced to use ${his} stiff prick to please ${domName}'s insatiable ass. ${He} spends the week trying to avoid ${domName}, because ${domName} won't stop forcing ${him} to get ${his} ${subRace} dick hard so ${domName} can ride ${his2} ${domRace} butt up and down on it. <span class="hotpink">${domName} enjoys having ${his2} own personal cock for the week,</span> even if it does have to be persuaded.`); + } else if ((slave.devotion <= 50)) { + r.push(`Since ${domName} loves anal, ${subName} finds ${himself} constantly asked to use ${his} stiff prick to please ${domName}'s insatiable ass. ${He} spends the week desperately trying to keep ${himself} hard, because ${domName} constantly expects ${his} ${subRace} dick to be erect so ${domName} can ride ${his2} ${domRace} butt up and down on it. <span class="hotpink">${domName} enjoys having ${his2} own personal cock for the week.</span>`); + } else { + r.push(`${domName} loves anal and ${subName} has a stiff prick. The two of them have good fun together.`); + if (hasAnyLegs(domSlave)) { + r.push(`${domName} pulls ${his2} anal ${girl}toy into bathrooms and corners constantly`); + } else { + r.push(`${domName} has ${his2} anal ${girl}toy hold ${his2}`); + if (isAmputee(domSlave)) { + r.push(`limbless`); + } + r.push(`torso`); + } + r.push(`so ${he2} can ride that ${subRace} dick with ${his2} ${domRace} butt. <span class="hotpink">${domName} enjoys a week of constant butt loving.</span>`); + } + penetrativeUse = jsRandom(9, 12); + slave.counter.penetrative += penetrativeUse; + V.penetrativeTotal += penetrativeUse; + domSlave.counter.anal += penetrativeUse; + V.analTotal += penetrativeUse; + if (canImpreg(domSlave, slave)) { + r.push(`${knockMeUp(domSlave, 30, 1, slave.ID, 1)}`); + if (domSlave.pregKnown === 1) { + r.push(`With so many potent deposits into ${his2} fertile rear, it comes as little surprise when <span class="lime">${he2} ends up pregnant with ${subName}'s child.</span>`); + } + } + } else if (canDoAnal(domSlave)) { + if (slave.devotion < -20) { + r.push(`Since ${domName} loves anal, ${subName} finds ${himself} forced to give analingus on command. ${He} spends the week trying to avoid servicing ${domName}'s insatiable ${domRace} ass with ${his} ${subRace} mouth, but ${domName} insists. <span class="hotpink">${domName} enjoys being able to force ${subName} to service ${his2} butt.</span>`); + } else if ((slave.devotion <= 50)) { + r.push(`Since ${domName} loves anal, ${subName} finds ${himself} giving analingus on command. ${He} spends the week servicing ${domName}'s insatiable ${domRace} ass with ${his} ${subRace} mouth. <span class="hotpink">${domName} enjoys having ${his2} ass pleasured whenever ${he2} wants it.</span>`); + } else { + r.push(`Since ${domName} loves anal play, ${subName} lavishes attention on ${his2} butt. ${He} spends the week servicing ${domName}'s insatiable ${domRace} ass with ${his} ${subRace} mouth. <span class="hotpink">${domName} enjoys having an enthusiastic anal playmate.</span>`); + } + oralUse = jsRandom(9, 12); + domSlave.counter.anal += oralUse; + V.analTotal += oralUse; + slave.counter.oral += oralUse; + V.oralTotal += oralUse; + } else { + if (slave.devotion < -20) { + r.push(`Since ${domName} loves ${his2} rear, ${subName} finds ${himself} forced to`); + if (!hasAnyArms(slave)) { + r.push(`massage`); + } else { + r.push(`fondle`); + } + r.push(`it on command. ${He} spends the week trying to avoid servicing ${domName}'s ${domRace} ass with ${his} ${subRace}`); + if (!hasAnyArms(slave)) { + r.push(`face,`); + } else { + r.push(`${hands},`); + } + r.push(`but ${domName} insists. <span class="hotpink">${domName} enjoys being able to force ${subName} to service ${his2} butt.</span>`); + } else if (slave.devotion <= 50) { + r.push(`Since ${domName} loves ${his} rear, ${subName} finds ${himself}`); + if (!hasAnyArms(slave)) { + r.push(`massaging`); + } else { + r.push(`fondling`); + } + r.push(`it on command. ${He} spends the week servicing ${domName}'s ${domRace} ass with ${his} ${subRace}`); + if (!hasAnyArms(slave)) { + r.push(`face.`); + } else { + r.push(`${hands}.`); + } + r.push(`<span class="hotpink">${domName} enjoys having ${his2} ass pleasured whenever ${he2} wants it.</span>`); + } else { + r.push(`Since ${domName} loves ${his2} rear played with, ${subName} lavishes attention on ${his2} butt. ${He} spends the week fondling ${domName}'s ${domRace} ass with ${his} ${subRace}`); + if (!hasAnyArms(slave)) { + r.push(`face.`); + } else { + r.push(`${hands}.`); + } + r.push(`<span class="hotpink">${domName} enjoys having a playmate so fond of ${his2} booty.</span>`); + } + } + } else if (slave.devotion >= -20 && domSlave === "submissive" && domSlave.fetishKnown === 1 && domSlave.fetishStrength > 60) { + r.push(`${domName} loves to submit, and tells ${subName} to fuck ${him2}; when ${subName} asks how, ${domName} tells ${him} to take charge.`); + if (canPenetrate(slave)) { + penetrativeUse = jsRandom(9, 12); + if (isAmputee(slave)) { + if (canDoVaginal(domSlave) && domSlave.vagina !== 0) { + r.push(`${domName} finds ${himself2} under the weight of ${subName}'s limbless body and ${his2} ${domRace} slit accommodating an eager ${subRace} cock. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top for ${his} efforts. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind</span> being expected to fuck a willing pussy.`); + domSlave.counter.vaginal += penetrativeUse; + V.vaginalTotal += penetrativeUse; + if (canImpreg(domSlave, slave)) { + r.push(`${knockMeUp(domSlave, 30, 0, slave.ID, 1)}`); + if (domSlave.pregKnown === 1) { + r.push(`With so many potent loads kissing ${his2} cervix, it comes as little surprise when <span class="lime">${he2} ends up pregnant with ${subName}'s child.</span>`); + } + } + } else if (canDoAnal(domSlave) && domSlave.anus !== 0) { + r.push(`${domName} finds ${himself2} under the weight of ${subName}'s limbless body and ${his2} ${domRace} ass accommodating an eager ${subRace} cock. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top for ${his} efforts. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind</span> being expected to fuck a willing asshole.`); + domSlave.counter.anal += penetrativeUse; + V.analTotal += penetrativeUse; + if (canImpreg(domSlave, slave)) { + r.push(`${knockMeUp(domSlave, 30, 1, slave.ID, 1)}`); + if (domSlave.pregKnown === 1) { + r.push(`With so many potent deposits into ${his2} fertile rear, it comes as little surprise when <span class="lime">${he2} ends up pregnant with ${subName}'s child.</span>`); + } + } + } else { + r.push(`${domName} finds ${his2} head under the weight of ${subName}'s limbless body and ${his2} ${domRace} face accommodating an eager ${subRace} cock. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top for ${his} efforts. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind</span> being expected to fuck a willing asshole.`); + domSlave.counter.oral += penetrativeUse; + V.oralTotal += penetrativeUse; + } + } else { + if (canDoVaginal(domSlave) && domSlave.vagina !== 0) { + r.push(`${domName} finds ${himself2} with ${his2} face pushed firmly into ${his2} bedsheets and ${his2} ${domRace} slit accommodating ${subName}'s eager ${subRace} cock. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind</span> being expected to fuck a willing pussy.`); + domSlave.counter.vaginal += penetrativeUse; + V.vaginalTotal += penetrativeUse; + if (canImpreg(domSlave, slave)) { + r.push(`${knockMeUp(domSlave, 30, 0, slave.ID)}`); + if (domSlave.pregKnown === 1) { + r.push(`With so many potent loads kissing ${his2} cervix, it comes as little surprise when <span class="lime">${he2} ends up pregnant with ${subName}'s child.</span>`); + } + } + } else if (canDoAnal(domSlave) && domSlave.anus !== 0) { + r.push(`${domName} finds ${himself2} with ${his2} face pushed firmly into ${his2} bedsheets and ${his2} ${domRace} ass accommodating ${subName}'s eager ${subRace} cock. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind</span> being expected to fuck a willing asshole.`); + domSlave.counter.anal += penetrativeUse; + V.analTotal += penetrativeUse; + if (canImpreg(domSlave, slave)) { + r.push(`${knockMeUp(domSlave, 30, 1, slave.ID)}`); + if (domSlave.pregKnown === 1) { + r.push(`With so many potent deposits into ${his2} fertile rear, it comes as little surprise when <span class="lime">${he2} ends up pregnant with ${subName}'s child.</span>`); + } + } + } else { + r.push(`${domName} finds ${himself2} with ${his2} face pushed firmly into ${subName}'s crotch and ${his2} ${domRace} face accommodating an eager ${subRace} cock. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind</span> being expected to fuck a willing asshole.`); + domSlave.counter.oral += penetrativeUse; + V.oralTotal += penetrativeUse; + } + } + slave.counter.penetrative += oralUse; + V.penetrativeTotal += oralUse; + } else if (slave.clit > 2) { + if (isAmputee(slave)) { + r.push(`${domName} finds ${himself2} pinned by the weight of ${subName}'s limbless body and ${his} quickly hardening ${subRace} clit being pushed eagerly into ${his2} ${domRace} mouth. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top for ${his} efforts.`); + } else { + r.push(`${domName} finds ${himself2} with ${his2} back pushed firmly into ${his2} bedsheets and ${subName}'s quickly hardening clit being pushed eagerly into ${his2} mouth. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top.`); + } + r.push(`${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind</span> constant oral attention.`); + penetrativeUse = jsRandom(9, 12); + domSlave.counter.oral += penetrativeUse; + V.oralTotal += penetrativeUse; + slave.counter.penetrative += penetrativeUse; + V.penetrativeTotal += penetrativeUse; + } else { + if (isAmputee(slave)) { + if (canDoVaginal(domSlave)) { + r.push(`${domName} finds ${himself2} under the weight of ${subName}'s limbless body and ${his2} ${domRace} slit molested by an eager tongue. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top for ${his} efforts. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind</span> being expected to torment a willing pussy.`); + oralUse = jsRandom(9, 12); + domSlave.counter.vaginal += oralUse; + V.vaginalTotal += oralUse; + slave.counter.vaginal += penetrativeUse; + V.vaginalTotal += penetrativeUse; + } else if (!(domSlave.chastityPenis) && domSlave.dick > 0) { + r.push(`${domName} finds ${himself2} under the weight of ${subName}'s limbless body with the tight embrace of ${subRace} lips around ${his2} ${domRace} cock. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top for ${his} efforts. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind</span> being expected to torment a willing dick.`); + oralUse = jsRandom(9, 12); + domSlave.counter.penetrative += oralUse; + V.penetrativeTotal += oralUse; + slave.counter.oral += penetrativeUse; + V.oralTotal += penetrativeUse; + } else { + r.push(`${domName} finds ${himself2} under the weight of ${subName}'s limbless body and`); + if (domSlave.boobs >= 300) { + r.push(`${his2} ${domRace} tits`); + } else { + r.push(`${his2} ${nippleColor(domSlave)} nipples`); + } + r.push(`under attack by an eager mouth. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top for ${his} efforts. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind</span> being expected to play with a willing chest.`); + oralUse = jsRandom(9, 12); + domSlave.counter.mammary += oralUse; + V.mammaryTotal += oralUse; + slave.counter.oral += penetrativeUse; + V.oralTotal += penetrativeUse; + } + } else { + if (canDoVaginal(domSlave) && domSlave.vagina !== 0) { + r.push(`${domName} finds ${himself2} with ${his2} face pushed firmly into ${his2} bedsheets and ${his2} ${domRace} slit accommodating ${subName}'s thrusting ${subRace} fingers. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind the fun.</span>`); + fuckCount = jsRandom(9, 12); + domSlave.counter.vaginal += fuckCount; + V.vaginalTotal += fuckCount; + } else if (canDoAnal(domSlave) && domSlave.anus !== 0) { + r.push(`${domName} finds ${himself2} with ${his2} face pushed firmly into ${his2} bedsheets and ${his2} ${domRace} ass accommodating ${subName}'s thrusting ${subRace} fingers. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind the fun.</span>`); + fuckCount = jsRandom(9, 12); + domSlave.counter.anal += fuckCount; + V.analTotal += fuckCount; + } else { + r.push(`${domName} finds ${himself2} pushed firmly into ${his2} bedsheets and ${his2}`); + if (domSlave.boobs >= 300) { + r.push(`${domRace} tits`); + } else { + r.push(`${nippleColor(domSlave)} nipples`); + } + r.push(`being roughly handled by ${subName}'s ${subRace} fingers. Afterward, ${domName} lavishes kisses on ${his2} satisfactory top. ${domName} <span class="hotpink">enjoys a week of constant submission,</span> and even though ${he}'s technically being used, ${subName} <span class="hotpink">doesn't mind the fun.</span>`); + fuckCount = jsRandom(9, 12); + domSlave.counter.mammary += fuckCount; + V.mammaryTotal += fuckCount; + } + } + } + slave.devotion += 1; + } else if (slave.devotion >= -20 && domSlave.fetishKnown === 1 && domSlave.fetishStrength > 60 && domSlave.fetish === "dom" && canWalk(domSlave)) { + r.push(`${domName} loves to dominate, and the first indication ${subName} gets of what ${he}'s in for this week is when ${domName} ambushes ${him} in the dormitory, tackles ${him} from behind, and`); + if (isAmputee(slave)) { + r.push(`bursts out`); + if (canTalk(domSlave)) { + r.push(`laughing`); + } else { + r.push(`in silent laughter`); + } + r.push(`at ${his} inability to right ${himself} without limbs.`); + } else { + r.push(`hogties ${him} with sheets.`); + } + r.push(`${subName} wriggles a little but doesn't really start to attempt escape until ${domName} begins to carefully tease ${his} ${subRace}`); + if (slave.dick > 0 && !(slave.chastityPenis)) { + r.push(`dickhead,`); + } else if (slave.clit > 0) { + r.push(`clit,`); + } else if (canDoVaginal(slave)) { + r.push(`pussy,`); + } else { + r.push(`nipples,`); + } + r.push(`edging ${him} right up to the point of orgasm and making ${him} beg. It's a long but <span class="hotpink">obedience-building</span> week for ${subName}, and ${domName} certainly <span class="hotpink">enjoys ${his2} toy.</span>`); + slave.devotion += 1; + if (slave.need && slave.fetishKnown) { + if (slave.fetish === "submissive" || slave.fetish === "masochist") { + r.push(`${subName} needs this kind of treatment to be truly sexually satisfied; this week, ${his} desire for abuse is sated.`); + slave.need = 0; + } + } + } else if (domSlave.fetishKnown === 1 && domSlave.fetishStrength > 60 && domSlave.fetish === "sadist" && canWalk(domSlave)) { + r.push(`${domName} loves to inflict pain, and the first indication ${subName} gets of what ${he}'s in for this week is when ${domName} ambushes ${him} in the dormitory, tackles ${him} from behind, and hogties ${him} with sheets.`); + if (canTalk(domSlave)) { + r.push(`${domName} bends close to the immobilized ${subName}'s ear and whispers to ${him} that ${he} might as well scream.`); + } else { + r.push(`${domName} carefully uses gestures to communicate to ${him} that ${he} might as well scream.`); + } + r.push(` ${subName}'s struggles to escape become desperate at this, and more desperate still when the week's first <span class="red">beating</span> starts. Later, ${he} tries going limp and unresistant, but that just makes the annoyed ${domName} beat ${his2} pain slave all the harder until ${he2} gets a reaction again. It's a long and <span class="hotpink">will breaking</span> week for ${subName}, and ${domName} certainly <span class="hotpink">enjoys torturing ${his2} toy.</span>`); + slave.devotion += 1; + healthDamage(slave, 3); + if (slave.need && slave.fetishKnown) { + if (slave.fetish === "submissive" || slave.fetish === "masochist") { + r.push(`${subName} needs this kind of treatment to be truly sexually satisfied; this week, ${his} desire for abuse is sated.`); + slave.need = 0; + } + } + } else if (domSlave.fetishKnown === 1 && domSlave.fetishStrength > 60 && domSlave.fetish === "boobs") { + if (domSlave.nipples === "fuckable" && canPenetrate(slave)) { + r.push(`Since ${domName} loves to have ${his2} nipples fucked, ${subName} spends the week getting to use ${his} dick for a change. ${subName}'s ${subRace} body thrusting into ${domName}'s supple ${domRace} breasts is a frequent sight as ${domName} takes ${his2} pleasure. <span class="hotpink">${domName} enjoys being able to use ${subName}.</span>`); + penetrativeUse = jsRandom(9, 12); + domSlave.counter.mammary += penetrativeUse; + V.mammaryTotal += penetrativeUse; + slave.counter.penetrative += penetrativeUse; + V.penetrativeTotal += penetrativeUse; + } else if (domSlave.lactation > 0) { + if (slave.devotion < -20) { + r.push(`Since ${domName} loves giving milk, ${subName} finds ${himself} forced to nurse. ${He} spends the week trying to avoid guzzling down milk from ${domName}'s ${nippleColor(domSlave)} ${domRace} nipples with ${his} ${subRace} mouth, but ${domName} insists. <span class="hotpink">${domName} enjoys being able to force ${subName} to drink from ${him2}.</span>`); + } else if (slave.devotion <= 50) { + r.push(`Since ${domName} loves giving milk, ${subName} finds ${himself} constantly nursing. ${He} spends the week obediently taking milk from ${domName}'s ${nippleColor(domSlave)} ${domRace} nipples with ${his} ${subRace} mouth, to ${domName}'s motherly satisfaction. <span class="hotpink">${domName} enjoys having ${subName} to drink from ${him2} whenever ${he2} feels overfull.</span>`); + } else { + r.push(`Since ${domName} loves giving milk, ${subName} constantly nurses from ${him2}. ${He} spends the week happily taking milk from ${domName}'s ${nippleColor(domSlave)} ${domRace} nipples with ${his} hungry ${subRace} mouth, to ${domName}'s motherly delight. <span class="hotpink">${domName} loves having ${subName} to feed and fill.</span>`); + } + } else { + if (slave.devotion < -20) { + r.push(`Since ${domName} loves having ${his2} breasts attended to, ${subName} finds ${himself} forced to`); + if (!hasAnyArms(slave)) { + r.push(`nuzzle and suck.`); + } else { + r.push(`knead, massage, and even suck.`); + } + r.push(`${He} spends the week trying to avoid servicing ${domName}'s ${domRace} breasts with ${his} ${subRace}`); + if (!hasAnyArms(slave)) { + r.push(`face,`); + } else { + r.push(`${hands},`); + } + r.push(`but ${domName} insists. <span class="hotpink">${domName} enjoys being able to force ${subName} to see to ${his2} tits.</span>`); + } else if (slave.devotion <= 50) { + r.push(`Since ${domName} loves having ${his2} breasts attended to, ${subName} finds ${himself}`); + if (!hasAnyArms(slave)) { + r.push(`nuzzling and sucking.`); + } else { + r.push(`kneading, massaging, and even sucking.`); + } + r.push(`${He} spends the week obediently servicing ${domName}'s ${domRace} breasts with ${his} ${subRace}`); + if (!hasAnyArms(slave)) { + r.push(`face,`); + } else { + r.push(`${hands},`); + } + r.push(`to ${domName}'s languorous pleasure. <span class="hotpink">${domName} enjoys having ${subName} to see to ${his2} tits.</span>`); + } else { + r.push(`Since ${domName} loves having ${his2} breasts attended to, ${subName} pampers ${his2} breasts shamelessly. ${He} spends the week devotedly massaging ${domName}'s ${domRace} breasts with ${his} ${subRace}`); + if (!hasAnyArms(slave)) { + r.push(`face,`); + } else { + r.push(`${hands},`); + } + r.push(`sucking lovingly at ${his2} nipples, and caring for everything with lotions and`); + if (!hasAnyArms(slave)) { + r.push(`oils (as best ${he} can without hands).`); + } else { + r.push(`oils.`); + } + r.push(`They sleep together so that ${subName} can`); + if (!hasAnyArms(slave)) { + r.push(`snuggle into ${his2} bust`); + } else { + r.push(`hold ${his2} boobs`); + } + r.push(`as ${he} goes to sleep, which sometimes results in less sleep for both as the breast play continues long into the night. <span class="hotpink">${domName} enjoys having ${subName} to see to ${his2} tits.</span>`); + } + } + if (domSlave.lactation > 0) { + domSlave.lactationDuration = 2; + domSlave.boobs -= domSlave.boobsMilk; + domSlave.boobsMilk = 0; + } + oralUse = jsRandom(9, 12); + domSlave.counter.mammary += oralUse; + V.mammaryTotal += oralUse; + } else if (slave.balls !== 0 && ((slave.chastityPenis === 0 && slave.dick > 0) || (slave.chastityVagina === 0)) && domSlave.fetishKnown === 1 && domSlave.fetishStrength > 60 && domSlave.fetish === "cumslut") { + if (canAchieveErection(slave)) { + r.push(`Since ${domName} loves cum, and ${subName} has a dick, ${domName} has ${his2} own private semen dispenser. ${domName} sometimes gets tired of having to work hard for cum, so ${he2} spends the week`); + if (hasAnyArms(domSlave)) { + r.push(`stimulating poor ${subName}'s`); + } else { + r.push(`ordering ${subName} to stimulate ${his} own`); + } + if (slave.prostate) { + r.push(`prostate`); + } else { + r.push(`balls`); + } + r.push(`to force ${him} to climax so ${domName} can wrap ${his2} ${domRace} lips around ${subName}'s ${subRace} dickhead to suck down ${his2} cum. <span class="hotpink">${domName} enjoys having a servile dick on demand.</span>`); + } else if (slave.dick > 0 && !canAchieveErection(slave)) { + r.push(`Since ${domName} loves cum, and ${subName} has a dick, ${domName} has ${his2} own private semen dispenser, even if it's rather limp. ${domName} sometimes gets tired of having to work hard for cum, so ${he2} spends the week making ${subName} painstakingly bring ${his} flaccid dick almost to orgasm before ${domName} wraps ${his2} ${domRace} lips around ${subName}'s ${subRace} soft dickhead to suck down the cum. <span class="hotpink">${domName} enjoys having a servile dick on demand.</span>`); + } else { + r.push(`Since ${domName} loves cum, and ${subName} has balls, ${domName} has ${his2} own private semen dispenser. ${domName} sometimes gets tired of having to work hard for cum, so ${he2} spends the week`); + if (hasAnyArms(domSlave)) { + r.push(`stimulating poor ${subName}'s`); + } else { + r.push(`ordering ${subName} to stimulate ${his} own`); + } + if (slave.prostate) { + r.push(`prostate`); + } else { + r.push(`balls`); + } + r.push(`to force ${him} to climax so ${domName} can plant ${his2} ${domRace} lips overs ${subName}'s ${subRace}`); + if (slave.vagina >= 0) { + r.push(`urethra`); + } else { + r.push(`smooth crotch`); + } + r.push(`to catch ${his} cum. <span class="hotpink">${domName} enjoys having ${his2} little sperm fountain.</span>`); + } + penetrativeUse = jsRandom(9, 12); + domSlave.counter.oral += penetrativeUse; + V.oralTotal += penetrativeUse; + } else if (domSlave.fetishKnown === 1 && domSlave.fetishStrength > 60 && domSlave.fetish === "humiliation" && hasAnyLegs(slave)) { + r.push(`${domName} loves being degraded, and the first indication ${subName} gets of what ${he}'s in for this week is when ${domName}`); + if (canWalk(domSlave)) { + r.push(`escorts ${him} to the cafeteria for lunch`); + } else { + r.push(`begs to be taken to the cafeteria for lunch`); + } + r.push(`and settles ${himself2}`); + if (hasBothLegs(slave)) { + r.push(`between ${subName}'s legs,`); + } else { + r.push(`in ${subName}'s crotch,`); + } + r.push(`before asking for ${his2} portion to be plated appropriately. ${subName} struggles to eat`); + if (slave.dick > 0) { + if (slave.chastityDick) { + r.push(`with an eager tongue probing the gaps around ${his} chastity cage trying to gather every last drop of slave food.`); + } else { + r.push(`while ${his}`); + if (slave.dick === 1) { + r.push(`tiny`); + } else if (slave.dick === 2) { + r.push(`cute`); + } else if (slave.dick === 3) { + r.push(`average`); + } else if (slave.dick === 4) { + r.push(`big`); + } else if (slave.dick === 5) { + r.push(`impressive`); + } else if (slave.dick === 6) { + r.push(`huge`); + } else if (slave.dick === 7) { + r.push(`gigantic`); + } else if (slave.dick === 8) { + r.push(`titanic`); + } else if (slave.dick === 9) { + r.push(`absurd`); + } else if (slave.dick === 10) { + r.push(`inhuman`); + } else { + r.push(`immense`); + } + if (canAchieveErection(slave)) { + r.push(`erection`); + } else { + r.push(`dick`); + } + r.push(`is licked clean of any slave food clinging to it.`); + if (domSlave.skills.oral - ((slave.dick * 15) - 20) >= 0) { + r.push(`${subName} practically throws ${his} cup when ${domName} sucks the entire length of ${his} dick into ${his2} mouth and down ${his2} throat, and`); + } else { + r.push(`${subName} shudders as ${domName} wraps ${his2} lips around ${his} cockhead and`); + } + r.push(`struggles to maintain any sense of composure as ${domName} works for ${his2} dessert.`); + if (slave.ballType !== "sterile" && slave.balls > 0) { + r.push(`The stimulation inevitably sends ${him} over the edge,`); + if (slave.vasectomy) { + r.push(`forcing ${him} to buck and ram ${his} cock a little too far into ${domName}.`); + } else if (slave.balls >= 30 || slave.prostate > 2) { + r.push(`unleashing a massive spurt down ${domName}'s throat. ${domName} gags and pulls back, recieving the rest of ${subName}'s load across ${his2} face and body. ${domName} couldn't even come close to hiding what happened — just the way ${he2} likes it.`); + } else if (slave.balls >= 10) { + r.push(`filling ${domName}'s throat with such volume it sprays out ${his2} nose. ${domName} stands no chance of cleaning ${himself2} up without being seen — quite enjoyable, really.`); + } else { + r.push(`giving ${domName} a cum chaser to ${his2} meal.`); + } + } else { + r.push(`But alas, ${subName}'s dispenser has nothing to give ${domName}, so ${his2} efforts are in vain — and in a way, ${he2} prefers it that way.`); + } + } + penetrativeUse = 7; + domSlave.counter.oral += penetrativeUse; + V.oralTotal += penetrativeUse; + slave.counter.penetrative += penetrativeUse; + V.penetrativeTotal += penetrativeUse; + } else if (slave.scrotum > 0) { + r.push(`while ${his}`); + if (slave.balls === 0) { + r.push(`empty ballsack is`); + } else if (slave.balls === 1) { + r.push(`tiny balls are`); + } else if (slave.balls === 2) { + r.push(`small balls are`); + } else if (slave.balls === 3) { + r.push(`balls are`); + } else if (slave.balls === 4) { + r.push(`big balls are`); + } else if (slave.balls === 5) { + r.push(`lemon-sized balls are`); + } else if (slave.balls < 9) { + r.push(`fist-sized balls are`); + } else if (slave.balls < 14) { + r.push(`softball-sized balls are`); + } else if (slave.balls < 30) { + r.push(`melon-sized balls are`); + } else { + r.push(`$his hypertrophied balls are`); + } + r.push(`licked and sucked clean of slave food.`); + if (slave.ballType !== "sterile") { + r.push(`The stimulation inevitably sends ${him} over the edge,`); + if (slave.vasectomy) { + r.push(`forcing ${him} to buck and smacking ${domName} into the underside of the table, spilling ${his} cup.`); + } else if (slave.balls >= 30 || slave.prostate > 2) { + r.push(`unleashing a veritable flood of semen across ${his} nuts. ${domName} sighs a little as ${his2} meal washes away, but sets to work on cleaning up the new mess all the same.`); + } else if (slave.balls >= 10) { + r.push(`completely refilling ${domName}'s makeshift bowl with a heavy second course — not that ${he2}'d complain.`); + } else { + r.push(`adding a mix of semen into ${domName}'s meal — which ${he2} wastes no time in lapping up.`); + } + } + fuckCount = 7; + domSlave.counter.oral += fuckCount; + V.oralTotal += fuckCount; + } else if (canDoVaginal(slave)) { + r.push(`while ${his} pussy is being invaded by drops of slave food and the tongue pursuing them.`); + if (slave.clit > 2) { + r.push(`${subName} practically throws ${his} cup when ${domName} sucks the entire length of ${his} clit into ${his2} mouth.`); + } + fuckCount = 7; + domSlave.counter.oral += fuckCount; + V.oralTotal += fuckCount; + slave.counter.penetrative += fuckCount; + V.vaginalTotal += fuckCount; + } else { + r.push(`with an eager tongue roaming ${his} thighs, pubic mound, and taint trying to lap up the slave food before it slips away.`); + fuckCount = 7; + domSlave.counter.oral += fuckCount; + V.oralTotal += fuckCount; + } + r.push(`The lewdness eminating from beneath the table is not lost on the other diners, <span class="hotpink">much to ${domName}'s enjoyment.</span>`); + } else if (domSlave.fetishKnown === 1 && domSlave.fetishStrength > 60 && domSlave.fetish === "masochist" && hasAnyLimbs(slave)) { + r.push(`${domName} loves pain, and the first indication ${subName} gets of what ${he}'s in for this week is when ${domName}`); + if (canHold(domSlave)) { + r.push(`hands ${him}`); + } else if (canTalk(domSlave)) { + r.push(`orders ${him} to pick up`); + } else { + r.push(`gestures at`); + } + r.push(`${his2} favorite crop and implores ${subName} to punish ${him2}; ${domName} has been bad and ${subName} needs to teach ${him2} a lesson. ${subName} spends a long and <span class="trust inc">empowering</span> week learning new ways to <span class="red">inflict pain</span> on someone, not that the <span class="hotpink">thoroughly bruised ${domName} will complain.</span>`); + slave.trust += 1; + healthDamage(domSlave, 3); + if (slave.need && slave.fetishKnown) { + if (slave.fetish === "submissive" || slave.fetish === "masochist") { + r.push(`${subName} needs this kind of treatment to be truly sexually satisfied; this week, ${his} desire for abuse is sated.`); + slave.need = 0; + } + } + } else if (domSlave.fetishKnown === 1 && domSlave.fetishStrength > 60 && domSlave.fetish === "pregnancy") { + if (canImpreg(slave, domSlave)) { + r.push(`${domName} loves pregnancy, and the first indication ${subName} gets of what ${he}'s in for this week is when ${domName}`); + if (hasAnyArms(domSlave)) { + r.push(`pushes ${him} down,`); + } else if (hasBothLegs(slave)) { + r.push(`bends ${him} over,`); + } + r.push(`mounts ${his} fertile ${slave.mpreg > 0 ? "ass" : ""}pussy and lets loose the first of many loads. ${subName} spends the week being thoroughly bred until ${domName}'s potent sperm <span class="hotpink">achieves ${his2} goal,</span> and then a bit more for good measure.`); + r.push(`${knockMeUp(slave, 100, 2, domSlave.ID)}`); + fuckCount = jsRandom(10, 16); + if (slave.mpreg > 0) { + analUse = fuckCount; + domSlave.counter.penetrative += fuckCount; + V.penetrativeTotal += fuckCount; + slave.counter.anal += fuckCount; + V.analTotal += fuckCount; + } else { + vaginalUse = fuckCount; + domSlave.counter.penetrative += fuckCount; + V.penetrativeTotal += fuckCount; + slave.counter.vaginal += fuckCount; + V.vaginalTotal += fuckCount; + } + } else if (domslave.pregKnown === 1 || slave.belly > 10000 || slave.bellyPreg >= 1500) { + if (domSlave.pregKnown === 1) { + if (slave.devotion < -20) { + r.push(`Since ${domName} is pregnant, ${subName} finds ${himself} forced to`); + if (!hasAnyArms(slave)) { + r.push(`nuzzle and lick`); + } else { + r.push(`massage, rub, and even tongue`); + } + r.push(`${his2} ${bellyAdjective(domSlave)} middle. ${He} spends the week trying to avoid contact with ${domName}'s ${domRace} belly with ${his} ${subRace}`); + if (!hasAnyArms(slave)) { + r.push(`face,`); + } else { + r.push(`${hands},`); + } + r.push(`but ${domName} insists. <span class="hotpink">${domName} enjoys being able to force ${subName} to attend to ${his2} gravidity.</span>`); + } else if (slave.devotion <= 50) { + r.push(`Since ${domName} is pregnant, ${subName} finds ${himself}`); + if (!hasAnyArms(slave)) { + r.push(`nuzzling and licking`); + } else { + r.push(`massaging, rubbing, and even licking`); + } + r.push(`${his2} ${bellyAdjective(domSlave)} middle. ${He} spends the week obediently servicing ${domName}'s ${domRace} belly with ${his} ${subRace}`); + if (!hasAnyArms(slave)) { + r.push(`face,`); + } else { + r.push(`${hands},`); + } + r.push(`to ${domName}'s languorous pleasure. <span class="hotpink">${domName} enjoys having ${subName} to attend to ${his2} gravidity.</span>`); + } else { + r.push(`Since ${domName} is pregnant, ${subName} pampers ${his2} ${bellyAdjective(domSlave)} middle shamelessly. ${He} spends the week devotedly massaging ${domName}'s ${domRace} middle with ${his} ${subRace}`); + if (!hasAnyArms(slave)) { + r.push(`face,`); + } else { + r.push(`${hands},`); + } + r.push(`lovingly teasing ${his2} ${domName.belly > 10000 ? "popped" : ""} navel, and staving off stretch marks with lotions and`); + if (!hasAnyArms(slave)) { + r.push(`oils (as best ${he} can without hands).`); + } else { + r.push(`oils.`); + } + r.push(`They sleep together so that ${subName} can`); + if (!hasAnyArms(slave)) { + r.push(`snuggle against ${his2} stomach`); + } else { + r.push(`clutch ${his2} stomach`); + } + r.push(`as ${he} goes to sleep, which sometimes results in less sleep for both as the fondling continues long into the night. <span class="hotpink">${domName} enjoys having ${subName} to attend to ${his2} gravidity.</span>`); + } + } else { + r.push(`Since ${domName} loves pregnant ${girl}s, and ${subName} just so happens to be a pregnant ${girl}, ${domName} spends the week fucking ${him}.`); + if (slave.devotion < -20) { + r.push(`${domName}'s ${domRace} body atop ${subName}'s swollen ${subRace} form is a frequent sight as ${domName} takes ${his2} pleasure. <span class="hotpink">${domName} enjoys being able to use ${subName} and ${his} ${bellyAdjective(slave)} belly.</span>`); + } else if (slave.devotion <= 50) { + r.push(`${domName}'s ${domRace} body atop ${subName}'s compliant swollen ${subRace} form is a frequent sight as ${domName} takes ${his2} pleasure. <span class="hotpink">${domName} enjoys being able to use ${subName} and ${his} ${bellyAdjective(slave)} belly.</span>`); + } else { + r.push(`${domName}'s ${domRace} body against ${subName}'s enthusiastic ${subRace} ${bellyAdjective(slave)} belly is a frequent sight as the two of them share pleasure. <span class="hotpink">${domName} enjoys having a pregnant plaything.</span>`); + } + if (canPenetrate(domSlave)) { + fuckCount = jsRandom(15, 25); + r.push(`${SimpleSexAct.Slaves(slave, domSlave, fuckCount)}`); + } else if (canPenetrate(slave) && ((canDoVaginal(domSlave) && domSlave.vagina > 0) || (canDoAnal(domSlave) && domSlave.anus > 0))) { + /* yes, that means she rides her */ + penetrativeUse = jsRandom(15, 25); + r.push(`${SimpleSexAct.Slaves(domSlave, slave, fuckCount)}`); + } else { + fuckCount = jsRandom(15, 25); + } + } + } else if (canImpreg(domSlave, slave)) { + r.push(`${domName} loves pregnancy, and the first indication ${subName} gets of what ${he}'s in for this week is when ${domName}`); + if (hasAnyLimbs(domSlave)) { + r.push(`pushes ${him} down`); + } else { + r.push(`has ${him} get in position`); + } + if (canPenetrate(slave)) { + r.push(`and mounts ${his} rigid dick`); + } else { + r.push(`and begins to work ${him} to orgasm.`); + } + r.push(`${domName} spends the week extracting loads from ${subName} until ${his} potent sperm <span class="hotpink">slakes the burning need in ${his2} loins.</span>`); + r.push(`${knockMeUp(domSlave, 100, 2, slave.ID)}`); + fuckCount = jsRandom(10, 16); + penetrativeUse = fuckCount; + slave.counter.penetrative += fuckCount; + V.penetrativeTotal += fuckCount; + if (domSlave.mpreg > 0) { + domSlave.counter.anal += fuckCount; + V.analTotal += fuckCount; + } else { + domSlave.counter.vaginal += fuckCount; + V.vaginalTotal += fuckCount; + } + } else { + r.push(`${domName} adores pregnancy, and the first indication ${subName} gets of what ${he}'s in for this week is when ${domName}`); + if (canWalk(domSlave)) { + if (domName.mpreg > 0 || domName.ovaries > 0) { + r.push(`pushes a full-term belly into ${subName}'s back and`); + } + } else { + r.push(`shows up pretending to be pregnant and`); + } + if (hasAnyArms(domSlave)) { + r.push(`hands ${him}`); + if (isItemAccessible.entry("a small empathy belly", "bellyAccessory")) { + r.push(`an enormous empathy belly`); + } else { + r.push(`a support band and big pillow`); + } + if (domName.mpreg > 0 || domName.ovaries > 0) { + r.push(`of ${his} own.`); + } else { + r.push(`to wear.`); + } + } else { + r.push(`instructs ${him} to pretend to be pregnant using`); + if (isItemAccessible.entry("a small empathy belly", "bellyAccessory")) { + r.push(`an enormous empathy belly`); + } else { + r.push(`a support band and big pillow`); + } + if (domName.mpreg > 0 || domName.ovaries > 0) { + r.push(`like ${he2} is.`); + } else { + r.push(`over ${his} middle.`); + } + } + if (slave.weight >= 130) { + r.push(`${subName} is too fat for ${domName}'s plan, so it's settled that ${he}'ll just pretend instead.`); + } + r.push(`Once ${he} is suitably 'knocked up', the fun begins; ${subName} spends the week getting awkwardly fucked.`); + if (slave.devotion < -20) { + r.push(`${domName}'s ${domRace} body struggling with ${subName}'s resisting ${subRace} form is a frequent sight as ${domName} takes ${his2} pleasure. <span class="hotpink">${domName} enjoys being able to use ${subName},</span> even if ${he2} has to pretend a little.`); + } else if (slave.devotion <= 50) { + r.push(`${domName}'s ${domRace} body balancing on ${subName}'s compliant ${subRace} form is a frequent sight as ${domName} takes ${his2} pleasure. <span class="hotpink">${domName} enjoys being able to use ${subName},</span> even if ${he2} has to pretend a little.`); + } else { + r.push(`${domName}'s ${domRace} body intertwined with ${subName}'s enthusiastic ${subRace} form is a frequent sight as the two of them share pleasure. <span class="hotpink">${domName} enjoys spending time with a partner willing to indulge ${his2} fantasies.</span>`); + } + if (canPenetrate(domSlave)) { + fuckCount = jsRandom(15, 25); + r.push(`${SimpleSexAct.Slaves(slave, domSlave, fuckCount)}`); + } else if (canPenetrate(slave) && ((canDoVaginal(domSlave) && domSlave.vagina > 0) || (canDoAnal(domSlave) && domSlave.anus > 0))) { + /* yes, that means she rides her */ + penetrativeUse = jsRandom(15, 25); + r.push(`${SimpleSexAct.Slaves(domSlave, slave, fuckCount)}`); + } else { + fuckCount = jsRandom(15, 25); + } + } + } else if (domSlave.energy > 95) { + if (slave.devotion < -20) { + r.push(`Since ${domName} loves to fuck, ${subName} spends the week getting fucked. ${domName}'s ${domRace} body atop ${subName}'s resisting ${subRace} form is a frequent sight as ${domName} takes ${his2} pleasure. <span class="hotpink">${domName} enjoys being able to use ${subName}.</span>`); + } else if (slave.devotion <= 50) { + r.push(`Since ${domName} loves to fuck, ${subName} spends the week getting fucked. ${domName}'s ${domRace} body atop ${subName}'s compliant ${subRace} form is a frequent sight as ${domName} takes ${his2} pleasure. <span class="hotpink">${domName} enjoys being able to use ${subName}.</span>`); + } else { + r.push(`Since ${domName} loves to fuck, ${subName} spends the week getting fucked. ${domName}'s ${domRace} body atop ${subName}'s enthusiastic ${subRace} form is a frequent sight as the two of them share pleasure. <span class="hotpink">${domName} enjoys having an extra outlet for ${his2} sexual needs.</span>`); + } + if (canPenetrate(domSlave)) { + fuckCount = jsRandom(15, 25); + r.push(`${SimpleSexAct.Slaves(slave, domSlave, fuckCount)}`); + } else if (canPenetrate(slave) && ((canDoVaginal(domSlave) && domSlave.vagina > 0) || (canDoAnal(domSlave) && domSlave.anus > 0))) { + /* yes, that means she rides her */ + penetrativeUse = jsRandom(15, 25); + r.push(`${SimpleSexAct.Slaves(domSlave, slave, fuckCount)}`); + } else { + fuckCount = jsRandom(15, 25); + } + } else if (domSlave.dick > 0 && canPenetrate(domSlave)) { + if (slave.devotion < -20) { + r.push(`${domName} doesn't get to use ${his2} still-functional cock as much as ${he2} would like; it often stands stiff and untended while ${he2}'s being used. Not this week: ${subName} spends the week with ${domName}'s ${domRace} dick thrusting in and out of ${his} ${subRace} body, whenever ${he2} feels like forcing it into ${subName}'s unwilling holes. <span class="hotpink">${domName} loves having someone to fuck whenever ${he2} wants.</span>`); + } else if (slave.devotion <= 50) { + r.push(`${domName} doesn't get to use ${his2} still-functional cock as much as ${he2} would like; it often stands stiff and untended while ${he2}'s being used. Not this week: ${subName} spends the week with ${domName}'s ${domRace} dick thrusting in and out of ${his} ${subRace} body, whenever ${he2} feels like putting it into ${subName}'s compliant holes. <span class="hotpink">${domName} loves having someone to stick ${his2} dick in at last.</span>`); + } else { + r.push(`${domName} doesn't get to use ${his2} still-functional cock as much as ${he2} would like; it often stands stiff and untended while ${he2}'s being used. Not this week: ${subName} spends the week with ${domName}'s ${domRace} dick thrusting in and out of ${his} ${subRace} body, whenever ${he2} feels like having an enthusiastic fuck. <span class="hotpink">${domName} loves having someone to tend to ${his2} prick at last.</span>`); + } + fuckCount = jsRandom(9, 12); + r.push(`${SimpleSexAct.Slaves(slave, domSlave, fuckCount)}`); + } else if (hasAnyArms(domSlave) && domSlave.attrXX > 85 && slave.dick === 0 && slave.vagina > -1) { // feminine check + if (slave.devotion < -20) { + r.push(`Since ${domName} loves girls, ${subName} finds ${himself} groped, fingered, and toyed with. ${He} spends the week trying to avoid ${domName}'s playful ${domRace}`); + if (hasBothArms(domSlave)) { + r.push(`hands,`); + } else { + r.push(`fingers,`); + } + r.push(`but they rove across ${his} ${subRace} body anyway. <span class="hotpink">${domName} enjoys having a nice little toy right at hand,</span> even if ${he} does have to be forced.`); + } else if (slave.devotion <= 50) { + r.push(`Since ${domName} loves girls, ${subName} finds ${himself} groped, fingered, and toyed with. ${He} spends the week accepting the attention of ${domName}'s playful ${domRace}`); + if (hasBothArms(domSlave)) { + r.push(`hands.`); + } else { + r.push(`fingers.`); + } + r.push(`They rove across ${his} ${subRace} body, eliciting embarrassed arousal. <span class="hotpink">${domName} enjoys having a nice little toy right at hand,</span> even if ${he} is a little hesitant.`); + } else { + r.push(`Since ${domName} loves girls, ${subName} finds ${himself} with a frank and open lover for the week. ${He} spends the week accepting the attention of ${domName}'s adoring ${domRace}`); + if (hasBothArms(domSlave)) { + r.push(`hands.`); + } else { + r.push(`fingers.`); + } + r.push(`They rove across ${his} ${subRace} body, knowing just where to touch and where to press. <span class="hotpink">${domName} enjoys having a compliant ${girl} friend,</span > and they spend as much time together as they can.`); + } + if (canPenetrate(domSlave)) { + fuckCount = jsRandom(9, 12); + r.push(`${SimpleSexAct.Slaves(slave, domSlave, fuckCount)}`); + } else { + fuckCount = jsRandom(9, 12); + } + } else if (slave.dick > 0 && hasAnyArms(domSlave) && domSlave.attrXY > 85) { + if (canPenetrate(slave)) { + if (slave.devotion < -20) { + r.push(`Since ${domName} loves hard cocks, ${subName} finds ${him} self forced to get hard and fuck. ${He} spends the week trying to avoid ${domName}'s constant demands. <span class="hotpink">${domName} enjoys having a nice dick right at hand,</span> even if it does have to be forced to stand up for ${him2}.`); + } else if (slave.devotion <= 50) { + r.push(`Since ${domName} loves hard cocks, ${subName} finds ${himself} required to get hard and fuck constantly. ${He} spends the week doing ${his} best to satisfy ${domName}'s constant demands. <span class="hotpink">${domName} enjoys having a nice dick right at hand,</span> and won't leave it alone.`); + } else { + r.push(`Since ${domName} loves hard cocks, ${subName} finds ${himself} asked to get hard and fuck constantly. ${He} spends the week doing ${his} best to satisfy ${domName}'s constant demands. <span class="hotpink">${domName} enjoys having a nice dick right at hand,</span> and won't leave it alone.`); + } + } else if (slave.dick > 6 && slave.balls > 0) { + if (slave.devotion < -20) { + r.push(`Since ${domName} loves cocks, even big soft ones, ${subName} finds ${himself} being sucked, groped, and cruelly taunted for ${his} inability to get hard. ${He} spends the week trying to avoid ${domName}'s abuse of ${his} poor oversized penis. <span class="hotpink">${domName} enjoys having a nice dick right at hand,</span> even if it's only good for taunting and torture.`); + } else if (slave.devotion <= 50) { + r.push(`Since ${domName} loves cocks, even big soft ones, ${subName} finds ${himself} being sucked, groped, and toyed with. ${He} spends the week complying with ${domName}'s amusements. <span class="hotpink">${domName} enjoys having a nice dick right at hand,</span> even if it's only good as a body pillow.`); + } else { + r.push(`Since ${domName} loves cocks, even big soft ones, ${subName} finds ${himself} being sucked, groped, and played with until ${he} comes. ${He} spends the week enjoying with ${domName}'s little games. <span class="hotpink">${domName} enjoys having a nice dick right at hand,</span> even if it's only good as a body pillow that occasionally discharges blobs of semen.`); + } + } else { + if (slave.devotion < -20) { + r.push(`Since ${domName} loves cocks, even soft ones, ${subName} finds ${himself} being sucked, groped, and cruelly taunted for ${his} impotence. ${He} spends the week trying to avoid ${domName}'s abuse of ${his} poor useless penis. <span class="hotpink">${domName} enjoys having a nice dick right at hand,</span> even if it's only good for taunting and torture.`); + } else if ((slave.devotion <= 50)) { + r.push(`Since ${domName} loves cocks, even soft ones, ${subName} finds ${himself} being sucked, groped, and toyed with. ${He} spends the week complying with ${domName}'s amusements. <span class="hotpink">${domName} enjoys having a nice dick right at hand,</span> even if it's only good as a soft toy.`); + } else { + r.push(`Since ${domName} loves cocks, even soft ones, ${subName} finds ${himself} being sucked, groped, and played with until ${he} comes. ${He} spends the week enjoying with ${domName}'s little games. <span class="hotpink">${domName} enjoys having a nice dick right at hand,</span> even if it's only good as a soft, dripping toy.`); + } + } + fuckCount = jsRandom(9, 12); + r.push(`${SimpleSexAct.Slaves(domSlave, slave, fuckCount)}`); + } else if (isAmputee(slave)) { + r.push(`${domName} doesn't have any special desires, so ${he2} simply uses the helpless ${subName} for comfort and convenience. ${subName} finds ${his} helpless ${subRace} torso being used as a bath toy, a bedwarmer, and for sexual convenience. <span class="hotpink">${domName} enjoys the ease and companionship.</span>`); + fuckCount = jsRandom(9, 12); + r.push(`${SimpleSexAct.Slaves(slave, domSlave, fuckCount)}`); + } else { + r.push(`${domName} doesn't have any special desires ${subName} can satisfy, so ${he2} simply uses ${subName} for comfort and convenience. ${subName} washes ${his} superior's ${domRace} body thoroughly and uses ${his} own ${subRace} body to warm ${domName}'s bed at night. <span class="hotpink">${domName} enjoys the ease and companionship.</span>`); + fuckCount = jsRandom(9, 12); + r.push(`${SimpleSexAct.Slaves(slave, domSlave, fuckCount)}`); + } + domSlave.devotion += 4; + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function sexualSatiation(slave) { + /* This is here because SimpleSexAct.Slaves doesn't update analUse, etc. and that is needed to calculate cervixPump and .need clearing */ + oralUse = slave.counter.oral - oralUse; + analUse = slave.counter.anal - analUse; + vaginalUse = slave.counter.vaginal - vaginalUse; + mammaryUse = slave.counter.mammary - mammaryUse; + penetrativeUse = slave.counter.penetrative - penetrativeUse; + + if (jobType === "stud") { + slave.need -= 50; + } else if (jobType === "cumdump") { + slave.need -= ((penetrativeUse + vaginalUse + analUse) * 3); + // cumdumps don't get to be doms or sadists + switch (slave.fetish) { + case "masochist": + case "submissive": + if (analUse + vaginalUse > 5) { + if (slave.fetishKnown) { + r.push(`Being frequently pinned and fucked really satisfies ${him}.`); + } else { + r.push(`${He} seems to enjoy getting pushed down and fucked; ${he}'s got a <span class="lightcoral"> ${slave.fetish === "masochist" ? "masochistic" : "submissive"} streak</span> in ${him}.`); + slave.fetishKnown = 1; + } + slave.need = 0; + } + break; + case "cumslut": + if (oralUse > 5) { + if (slave.fetishKnown) { + r.push(`Frequently getting to suck cum out of slaves really satisfies ${him}.`); + } else { + r.push(`${He} seems to enjoy putting ${his} mouth to use; ${he}'s got a <span class="lightcoral">taste for cum.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + } + break; + case "buttslut": + if (analUse > 5) { + if (slave.fetishKnown) { + r.push(`Frequently having ${his} butthole fucked really satisfies ${subName}.`); + } else { + r.push(`${He} seems to rather enjoy getting assfucked; <span class="lightcoral">anal gets ${him} worked up.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + } + break; + case "pregnancy": + if (canGetPregnant(slave)) { + if (slave.mpreg === 0 && vaginalUse > 7) { + if (slave.fetishKnown) { + r.push(`Having ${his} fertile pussy see so much use really satisfies ${subName}.`); + } else { + r.push(`Frequent unprotected sex in ${his} fertile hole exposes ${him} for the <span class="lightcoral">pregnancy fetishest ${he} is.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + } else if (slave.mpreg === 1 && analUse > 7) { + if (slave.fetishKnown) { + r.push(`Having ${his} fertile ass see so much use really satisfies ${subName}.`); + } else { + r.push(`Frequent unprotected sex in ${his} fertile hole exposes ${him} for the <span class="lightcoral">pregnancy fetishest ${he} is.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + } + } + break; + case "humiliation": + if (slave.fetishKnown) { + r.push(`Having all the other slaves see ${him} in such a humiliating role really satisfies ${subName}.`); + } else { + r.push(`${He} seems to enjoy ${his} humiliating role; ${he} <span class="lightcoral"> gets off to being degraded.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + break; + case "boobs": + if (mammaryUse > 5) { + if (slave.fetishKnown) { + r.push(`Having so much attention lavished on ${his} tits really satisfies ${subName}.`); + } else { + r.push(`${He} seems to enjoy all the attention ${his} breasts are getting; ${he}'s a <span class="lightcoral">breast fetishest.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + slave.induceLactation += 2; + r.push(`${induceLactation(slave)}`); + } + break; + } + } else if (jobType === "sub") { + domSlave.need = 0; + slave.need -= ((penetrativeUse + vaginalUse + analUse) * 5); + switch (slave.fetish) { + case "masochist": + case "submissive": + if (analUse + vaginalUse > 0) { + if (slave.fetishKnown) { + r.push(`Being someone's submissive toy really satisfies ${subName}.`); + } else { + r.push(`${He} seems to enjoy being a toy; ${he}'s got a <span class="lightcoral"> ${slave.fetish === "masochist" ? "masochistic" : "submissive"} streak</span> in ${him}.`); + slave.fetishKnown = 1; + } + slave.need = 0; + } + break; + case "dom": + case "sadist": + if (penetrativeUse > 0) { + if (slave.fetishKnown) { + r.push(`Getting to be on top is precious, and it really satisfies ${subName}.`); + } else { + r.push(`${He} relishes getting to be on top; ${he}'s got a <span class="lightcoral"> ${slave.fetish === "dom" ? "dominant" : "sadistic"} side</span> to ${him}.`); + slave.fetishKnown = 1; + } + slave.need = 0; + } + break; + case "cumslut": + if (oralUse > 0) { + if (slave.fetishKnown) { + r.push(`Being someone's oral toy really satisfies ${subName}.`); + } else { + r.push(`${He} seems to thoroughly enjoy being an oral toy; ${he}'s <span class="lightcoral">an honest cumslut.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + } + break; + case "buttslut": + if (analUse > 0) { + if (slave.fetishKnown) { + r.push(`Having ${his} butthole serve as someone's toy really satisfies ${subName}.`); + } else { + r.push(`${He} seems to thoroughly enjoy ${his} ass being reduced to someone's toy; ${he}'s <span class="lightcoral">an honest buttslut.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + } + break; + case "pregnancy": + if (canGetPregnant(slave)) { + if (slave.mpreg === 0 && vaginalUse > 0) { + if (slave.fetishKnown) { + r.push(`Having ${his} pussy serve as someone's toy really satisfies ${subName}.`); + } else { + r.push(`Having ${his} fertile pussy unused exposes ${him} for the <span class="lightcoral">pregnancy fetishest ${he} is.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + } else if (slave.mpreg === 1 && analUse > 0) { + if (slave.fetishKnown) { + r.push(`Having ${his} ass serve as someone's toy really satisfies ${subName}.`); + } else { + r.push(`Having ${his} fertile asspussy unused exposes ${him} for the <span class="lightcoral">pregnancy fetishest ${he} is.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + } + } + break; + case "humiliation": + if (slave.fetishKnown) { + r.push(`Having all the other slaves see ${him} in such a humiliating role really satisfies ${subName}.`); + } else { + r.push(`${He} seems to enjoy ${his} humiliating role; ${he} <span class="lightcoral"> gets off to being degraded.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + break; + case "boobs": + if (mammaryUse > 0) { + if (slave.fetishKnown) { + r.push(`Having ${his} tits serve as someone's toy really satisfies ${subName}.`); + } else { + r.push(`${He} seems to thoroughly enjoy ${his} breasts being reduced to someone's toys; ${he}'s <span class="lightcoral">an honest boobslut.</span>`); + slave.fetishKnown = 1; + } + slave.need = 0; + slave.induceLactation += 2; + r.push(`${induceLactation(slave)}`); + } + break; + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function physicalEffects(slave) { + if (jobType === "sub") { + if (domSlave.health.condition < 40) { + r.push(`<span class="green">${domName}'s health improves</span> with ${subName} to serve ${him2} and help with some of ${his2} harder duties.`); + // Add tiredness recovery here + improveCondition(domSlave, 10); + } + } + + if (slave.cervixImplant === 1 || slave.cervixImplant === 3) { + cervixPump += 20 * vaginalUse; + } + if (slave.cervixImplant === 2 || slave.cervixImplant === 3) { + cervixPump += 20 * analUse; + } + if (cervixPump > 0) { + r.push(`${He} notices ${his} <span class="lime">belly is a little heavier</span> after all the`); + if (slave.cervixImplant === 1) { + r.push(`vaginal`); + } else if (slave.cervixImplant === 2) { + r.push(`anal`); + } + r.push(`sex ${he} had throughout the week.`); + slave.bellyImplant += cervixPump; + } + + if (slave.lactation > 0 && mammaryUse > 0) { + slave.lactationDuration = 2; + if (slave.boobsMilk > 0) { + slave.boobs -= slave.boobsMilk; + slave.boobsMilk = 0; + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function mentalEffects(slave) { + if (jobType === "sub") { + if (slave.devotion <= 20) { + if (slave.trust >= -20) { + r.push(`${subName} <span class="gold">is further habituated to subservience</span> by ${domName}.`); + slave.trust -= 5; + if (slave.sexualQuirk === "strugglefuck queen") { + r.push(`Secretly, though, ${subName} gets off on being raped, <span class="hotpink">and wants more.</span>`); + slave.devotion += 1; + } + } + } + + if (slave.behavioralFlaw === "hates men") { + if (domSlave.dick > 0 && slave.devotion > 20) { + r.push(`Spending so much time in close proximity to a slave with a dick <span class="green">reconciles ${him} to getting fucked by them.</span>`); + slave.behavioralFlaw = "none"; + } + } else if (slave.behavioralFlaw === "hates women") { + if (domSlave.vagina !== -1 && slave.devotion > 20) { + r.push(`Spending so much time in close proximity to a slave with a pussy <span class="green">reconciles ${him} to sex with girls.</span>`); + slave.behavioralFlaw = "none"; + } + } + + if (slave.relationship === 0) { + if (slave.rivalryTarget !== domSlave.ID && slave.devotion >= 10 && domSlave.relationship === 0) { + if (jsRandom(1, 100) > 50) { + r.push(`${subName} and ${domName} enjoy spending time together and <span class="lightgreen">strike up a friendship.</span>`); + domSlave.relationship = 1; + domSlave.relationshipTarget = slave.ID; + slave.relationship = 1; + slave.relationshipTarget = domSlave.ID; + } else { + r.push(`${subName} and ${domName} find they enjoy their sexual relationship and <span class="lightgreen">become friends with benefits.</span>`); + domSlave.relationship = 3; + domSlave.relationshipTarget = slave.ID; + slave.relationship = 3; + slave.relationshipTarget = domSlave.ID; + } + } + } else if (slave.relationship > 0) { + if (slave.relationshipTarget === domSlave.ID && slave.devotion >= -20) { + r.push(`${subName} likes getting fucked by ${domName} and <span class="hotpink">appreciates</span> having it as ${his} job.`); + slave.devotion += 1; + } + if (slave.relationship < 3) { + if (slave.relationshipTarget === domSlave.ID) { + if (slave.devotion >= 10) { + r.push(`${subName} and ${domName} find that they enjoy having sex just as much as they like being friends, and become <span class="lightgreen">friends with benefits.</span>`); + domSlave.relationship = 3; + slave.relationship = 3; + } else if (slave.devotion <= 20) { + r.push(`${subName} and ${domName}'s relationship is <span class="lightsalmon">damaged</span> by ${domName} having the right to use ${subName}.`); + domSlave.relationship--; + slave.relationship--; + } + } + } else if (slave.relationship < 4) { + if (slave.relationshipTarget === domSlave.ID && slave.devotion >= 10) { + r.push(`${subName} and ${domName} don't have to be encouraged to have sex, but with extra time for it, they become <span class="lightgreen">lovers.</span>`); + domSlave.relationship++; + slave.relationship++; + } + } + } + + if (slave.rivalry === 0) { + if (slave.relationshipTarget !== domSlave.ID && slave.devotion <= 50 && domSlave.rivalry === 0 && jsRandom(1, 100) > 50) { + r.push(`${subName} resents ${domName} for using ${him} and the two <span class="lightsalmon">start to dislike each other.</span>`); + domSlave.rivalry = 1; + domSlave.rivalryTarget = slave.ID; + slave.rivalry = 1; + slave.rivalryTarget = domSlave.ID; + } + } else { + if (slave.rivalryTarget === domSlave.ID && slave.devotion <= 50) { + r.push(`${subName} resents subordinating ${him}self to ${domName} and <span class="mediumorchid">dislikes</span> having it as ${his} job.`); + slave.devotion -= 2; + } + if (slave.rivalry < 3 && slave.rivalryTarget === domSlave.ID) { + if (slave.devotion <= 50) { + r.push(`${subName} hates being used by ${his} rival ${domName} so much that their <span class="lightsalmon">feud worsens.</span>`); + domSlave.rivalry++; + slave.rivalry++; + } else if (slave.devotion > 50) { + r.push(`${subName} serves ${domName} so devotedly that they <span class="lightgreen">work out</span> some of their differences through sex.`); + domSlave.rivalry--; + slave.rivalry--; + } + } + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function slaveSkills(slave) { + // WIP + } +})(); diff --git a/src/uncategorized/fullReport.tw b/src/uncategorized/fullReport.tw index d70e4eafe05ce39dab94d9f849d702db329b88fd..f409b5fa69d4a2d6e0ef27ad4377c17843f38493 100644 --- a/src/uncategorized/fullReport.tw +++ b/src/uncategorized/fullReport.tw @@ -27,7 +27,7 @@ <<case "please you">> <<= App.SlaveAssignment.pleaseYou($slaves[$i])>> <<case "be a subordinate slave">> - <<include "SA serve your other slaves">> + <<= App.SlaveAssignment.serveYourOtherSlaves($slaves[$i])>> <<case "be a servant">> <<= App.SlaveAssignment.servant($slaves[$i])>> <<case "stay confined">> diff --git a/src/uncategorized/saServeYourOtherSlaves.tw b/src/uncategorized/saServeYourOtherSlaves.tw deleted file mode 100644 index bed8ae13d50e7fb6a777ef94f982c800056d0196..0000000000000000000000000000000000000000 --- a/src/uncategorized/saServeYourOtherSlaves.tw +++ /dev/null @@ -1,679 +0,0 @@ -:: SA serve your other slaves [nobr] - -<<set _oralUse = $slaves[$i].counter.oral, _analUse = $slaves[$i].counter.anal, _vaginalUse = $slaves[$i].counter.vaginal, _mammaryUse = $slaves[$i].counter.mammary, _penetrativeUse = $slaves[$i].counter.penetrative>> - -<<set _dom = $slaveIndices[$slaves[$i].subTarget]>> - -<<set _hands = "hands">> -<<if !hasBothArms($slaves[$i])>> - <<set _hands = "hand">> -<</if>> - -<<if ndef _dom>> - <<if $slaves[$i].subTarget == -1>> - <<if $slaves[$i].fuckdoll > 0>> - is positioned as a sperm dispenser for fertile slaves to ride or milk at their discretion. - <<elseif $slaves[$i].fetish == "mindbroken">> - <<if $slaves[$i].career == "a breeding bull" && canWalk($slaves[$i])>> - is allowed to freely breed any fertile slaves $he can find. - <<else>> - is left as a sperm dispenser for fertile slaves to ride or milk at their discretion. - <</if>> - <<elseif $slaves[$i].career == "a breeding bull">> - sees it as $his duty to impregnate everyone in $his path. A role $he @@.hotpink;appreciates@@ you @@.mediumaquamarine;untrusting $him with.@@ - <<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>> - <<if $slaves[$i].fetish == "pregnancy">> - $He @@.hotpink;thoroughly enjoys@@ $his dream-like, pregnancy-centered life. - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].fetish == "dom">> - $He @@.hotpink;thoroughly enjoys@@ having permission to mount and breed any slave $he wants. - <<set $slaves[$i].devotion += 1>> - <</if>> - <<elseif $slaves[$i].devotion <= 20>> - <<if $slaves[$i].trust >= -20>> - is bound and laid out to serve as a source of cum for your fertile slaves. Being tied up and left to the wolves @@.gold;frightens $him into obedience.@@ - <<set $slaves[$i].trust -= 5>> - <<if $slaves[$i].fetish == "pregnancy">> - $He secretly gets off at the thought of all the wombs $he will seed @@.hotpink;and can't wait to get to work.@@ - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].fetish == "submissive">> - $He secretly enjoys the prospect of being pinned by mothers-to-be and milked to orgasm; @@.hotpink;$he needs it.@@ - <<set $slaves[$i].devotion += 1>> - <</if>> - <<else>> - is forced to serve as a sperm dispenser for your fertile slaves. Being taken advantage of in such a way @@.hotpink;habituates $him to subservience@@ and @@.gold;keeps $him fearful.@@ - <<set $slaves[$i].trust -= 2, $slaves[$i].devotion += 2>> - <<if $slaves[$i].fetish == "pregnancy">> - $He privately enjoys the prospect of fertilizing so many eggs @@.hotpink;and accepts it.@@ - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].fetish == "masochist">> - $He privately enjoys the prospect of rough treatment @@.hotpink;and accepts it.@@ - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].fetish == "submissive">> - $He privately enjoys the prospect of being treated as a mere tool @@.hotpink;and accepts it.@@ - <<set $slaves[$i].devotion += 1>> - <</if>> - <</if>> - <<else>> - obediently seeds your fertile slaves. Being used as a stud @@.hotpink;keeps $him in a good frame of mind@@ and @@.mediumaquamarine;builds $his trust in you.@@ - <<set $slaves[$i].devotion += 2, $slaves[$i].trust += 2>> - <<if $slaves[$i].fetish == "pregnancy">> - $He @@.hotpink;openly enjoys@@ getting the honor of fathering new slaves on your behalf. - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].fetish == "dom">> - $He @@.hotpink;openly enjoys@@ the prospect of laying claim to any womb that comes $his way. - <<set $slaves[$i].devotion += 1>> - <</if>> - <</if>> - <<set $slaves[$i].need -= 50>> - <<else>> - <<if $slaves[$i].devotion <= 20>> - <<if $slaves[$i].trust >= -20>> - is forced to serve your other slaves' sexual needs by constant punishment. Being castigated and raped @@.gold;frightens $him into obedience.@@ - <<set $slaves[$i].trust -= 5>> - <<if $slaves[$i].sexualQuirk == "strugglefuck queen">> - $He secretly likes being raped @@.hotpink;and wants more.@@ - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].sexualQuirk == "gagfuck queen">> - $He secretly enjoys the oral abuse @@.hotpink;and wants more.@@ - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].sexualQuirk == "painal queen">> - $He secretly gets off on assrape @@.hotpink;and wants more.@@ - <<set $slaves[$i].devotion += 1>> - <</if>> - <<else>> - is forced to serve your other slaves' sexual needs by $his fear. Being used on pain of punishment @@.hotpink;habituates $him to subservience@@ and @@.gold;keeps $him fearful.@@ - <<set $slaves[$i].trust -= 2, $slaves[$i].devotion += 2>> - <<if $slaves[$i].sexualQuirk == "strugglefuck queen">> - $He privately likes being abused @@.hotpink;and accepts it.@@ - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].sexualQuirk == "gagfuck queen">> - $He privately likes being an oral toy and @@.hotpink;and accepts it.@@ - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].sexualQuirk == "painal queen">> - $He privately likes being an anal toy @@.hotpink;and accepts it.@@ - <<set $slaves[$i].devotion += 1>> - <</if>> - <</if>> - <<else>> - obediently serves your other slaves' sexual needs. Being used as a sexual outlet for everyone @@.hotpink;keeps $him in a good frame of mind.@@ - <<set $slaves[$i].devotion += 2>> - <<if $slaves[$i].sexualQuirk == "strugglefuck queen">> - $He @@.hotpink;openly enjoys@@ how other slaves can take whatever they want from $him. - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].sexualQuirk == "gagfuck queen">> - $He @@.hotpink;openly enjoys@@ how other slaves can order $him to lick, suck or blow anything at all. - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].sexualQuirk == "painal queen">> - $He @@.hotpink;openly enjoys@@ how other slaves can shove anything up $his butt without asking first. - <<set $slaves[$i].devotion += 1>> - <</if>> - <</if>> - <<if hasAnyLegs($slaves[$i]) && !canWalk($slaves[$i])>> - Since $he's forced to crawl around, $he's especially vulnerable. - <</if>> - <<if ($dormitoryPopulation+$roomsPopulation-$subSlaves) > 5>> - <<set _load = ($subSlaves/($dormitoryPopulation+$roomsPopulation-$subSlaves))>> - <<if _load > .8>> - Since there are enough other slaves servicing your stock alongside $him, $he sees limited action. - <<elseif _load > .5>> - With $his servicing sisters, $his workload is reasonable and $he isn't overworked. - <<elseif _load > .2>> - While $he may have support in servicing your stock, $he is overwhelmed by their collective need. - <<set $slaves[$i].health.tired += 10>> - <<if $slaves[$i].sexualFlaw == "self hating">> - With so many other slaves taking advantage of $his body, $his life's purpose of @@.hotpink;being nothing more than a piece of meat@@ has come true. - <<set $slaves[$i].devotion += 5>> - <<elseif $slaves[$i].sexualFlaw == "attention whore">> - With little competition for $his body and so many slaves eager to use $him, $his dreams of being the center of attention are @@.hotpink;have come true.@@ - <<if $slaves[$i].weight < 10 && $slaves[$i].belly < 100>> - <<if canDoVaginal($slaves[$i]) && $slaves[$i].vagina > 0 && canDoAnal($slaves[$i]) && $slaves[$i].anus > 0>> - $He ends each day cradling $his cum swollen stomach, marveling at the "attention" bestowed upon $him. - <<elseif (canDoVaginal($slaves[$i]) && $slaves[$i].vagina > 0) || (canDoAnal($slaves[$i]) && $slaves[$i].anus > 0)>> - By the end of the day, $his stomach has a noticeable bulge to it from all the "attention" bestowed upon $him. - <</if>> - <</if>> - <<set $slaves[$i].devotion += 5>> - <<elseif $slaves[$i].energy > 95>> - With so many other slaves using $his body, $his @@.hotpink;burning libido is finally sated.@@ - <<set $slaves[$i].devotion += 2>> - <</if>> - <<else>> - Since <<if $subSlaves == 1>>$he is the only slave<<else>>there are so few other slaves<</if>> servicing your stock, $he is used to the @@.red;point of exhaustion.@@ - <<set $slaves[$i].health.tired += 30>> - <<run healthDamage($slaves[$i], 10)>> - <<if $averageDick > 5>> - <<if canDoVaginal($slaves[$i]) && $slaves[$i].vagina > 0 && $slaves[$i].vagina < 4>> - <<if ($slaves[$i].vagina*40)-($averageDick*5) < random(1,100)>> - So many huge dicks pistoning in and out of $his pussy @@.lime;loosen $him up.@@ - <<set $slaves[$i].vagina++>> - <<set $slaves[$i].counter.vaginal += 3, $vaginalTotal += 3>> - <</if>> - <</if>> - <<if canDoAnal($slaves[$i]) && $slaves[$i].anus > 0 && $slaves[$i].anus < 4>> - <<if ($slaves[$i].anus*40)-($averageDick*5) < random(1,100)>> - @@.lime;$His asshole is loosened@@ after being pounded by so many giant cocks. - <<set $slaves[$i].anus++>> - <<set $slaves[$i].counter.anal += 3, $analTotal += 3>> - <</if>> - <</if>> - <</if>> - <<if $slaves[$i].sexualFlaw == "self hating">> - With so many other slaves taking advantage of $his body, $his life's purpose of @@.hotpink;being nothing more than a piece of meat@@ has come true. - <<set $slaves[$i].devotion += 5>> - <<elseif $slaves[$i].sexualFlaw == "attention whore">> - With little competition for $his body and so many slaves eager to use $him, $his dreams of being the center of attention are @@.hotpink;have come true.@@ - <<if $slaves[$i].weight < 10 && $slaves[$i].belly < 100>> - <<if canDoVaginal($slaves[$i]) && $slaves[$i].vagina > 0 && canDoAnal($slaves[$i]) && $slaves[$i].anus > 0>> - $He ends each day cradling $his cum swollen stomach, marveling at the "attention" bestowed upon $him. - <<elseif (canDoVaginal($slaves[$i]) && $slaves[$i].vagina > 0) || (canDoAnal($slaves[$i]) && $slaves[$i].anus > 0)>> - By the end of the day, $his stomach has a noticeable bulge to it from all the "attention" bestowed upon $him. - <</if>> - <</if>> - <<set $slaves[$i].devotion += 5>> - <<elseif $slaves[$i].energy > 95>> - With so many other slaves using $his body, $his @@.hotpink;burning libido is finally sated.@@ - <<set $slaves[$i].devotion += 2>> - <</if>> - <</if>> - <</if>> - <<if $subSlaves <= 0>> - <<set $subSlaves = 1>> - <</if>> - <<set _fuckCount = Math.ceil((($dormitoryPopulation+$roomsPopulation)+random((($dormitoryPopulation+$roomsPopulation)*1),($dormitoryPopulation+$roomsPopulation)*7))/$subSlaves)>> - <<run SimpleSexAct.Slave($slaves[$i], _fuckCount)>> - <<set $slaves[$i].need -= 2*_fuckCount>> - <</if>> -<<else>> /* serving a slave */ - -<<setLocalPronouns $slaves[_dom] 2>> - -<<if $seeRace == 1>> - <<set _domRace = $slaves[_dom].race, _subRace = $slaves[$i].race>> -<<else>> - <<set _domRace = "", _subRace = "">> -<</if>> - -is serving ''$slaves[_dom].slaveName'' this week. -<<if hasAnyLegs($slaves[_dom]) && !canWalk($slaves[$i])>> - Since $slaves[$i].slaveName cannot stand, $slaves[_dom].slaveName has no trouble taking whatever _he2 wants from $him. -<<elseif isAmputee($slaves[_dom])>> - Since _he2 has no limbs, $slaves[_dom].slaveName has to put forth extra effort taking whatever _he2 wants from $slaves[$i].slaveName. -<</if>> - -<<if canPenetrate($slaves[_dom])>> - <<if ($slaves[$i].anus == 0 && canDoAnal($slaves[$i])) && ($slaves[$i].vagina == 0 && canDoVaginal($slaves[$i]))>> - Of course, _he2 respects $slaves[$i].slaveName's virgin holes and does not penetrate $him. - <<elseif ($slaves[$i].anus == 0) && canDoAnal($slaves[$i])>> - Of course, _he2 respects $slaves[$i].slaveName's anal virginity and does not penetrate $him there. - <<elseif ($slaves[$i].vagina == 0) && canDoVaginal($slaves[$i])>> - Of course, _he2 respects $slaves[$i].slaveName's virginity and does not penetrate $his pussy. - <</if>> -<</if>> - -<<if ($slaves[_dom].fetishKnown == 1) && ($slaves[_dom].fetishStrength > 60) && ($slaves[_dom].fetish == "buttslut")>> - <<if canPenetrate($slaves[$i]) && canDoAnal($slaves[_dom]) && ($slaves[_dom].anus != 0)>> - <<if ($slaves[$i].devotion < -20)>> - Since $slaves[_dom].slaveName loves anal, $slaves[$i].slaveName finds $himself forced to use $his stiff prick to please $slaves[_dom].slaveName's insatiable ass. $He spends the week trying to avoid $slaves[_dom].slaveName, because $slaves[_dom].slaveName won't stop forcing $him to get $his _subRace dick hard so $slaves[_dom].slaveName can ride _his2 _domRace butt up and down on it. @@.hotpink;$slaves[_dom].slaveName enjoys having _his2 own personal cock for the week,@@ even if it does have to be persuaded. - <<elseif ($slaves[$i].devotion <= 50)>> - Since $slaves[_dom].slaveName loves anal, $slaves[$i].slaveName finds $himself constantly asked to use $his stiff prick to please $slaves[_dom].slaveName's insatiable ass. $He spends the week desperately trying to keep $himself hard, because $slaves[_dom].slaveName constantly expects $his _subRace dick to be hard so $slaves[_dom].slaveName can ride _his2 _domRace butt up and down on it. @@.hotpink;$slaves[_dom].slaveName enjoys having _his2 own personal cock for the week.@@ - <<else>> - $slaves[_dom].slaveName loves anal and $slaves[$i].slaveName has a stiff prick. The two of them have good fun together. - <<if hasAnyLegs($slaves[_dom])>> - $slaves[_dom].slaveName pulls _his2 anal girltoy into bathrooms and corners constantly - <<else>> - $slaves[_dom].slaveName has _his2 anal girltoy hold _his2 <<if isAmputee($slaves[_dom])>>limbless <</if>>torso - <</if>> - so _he2 can ride that _subRace dick with _his2 _domRace butt. @@.hotpink;$slaves[_dom].slaveName enjoys a week of constant butt loving.@@ - <</if>> - <<set _penetrativeUse = random(9,12)>> - <<set $slaves[_dom].counter.anal += _penetrativeUse, $analTotal += _penetrativeUse>> - <<if canImpreg($slaves[_dom], $slaves[$i])>> - <<= knockMeUp($slaves[_dom], 30, 1, $slaves[$i].ID, 1)>> - <<if $slaves[_dom].pregKnown == 1>> - With so many potent deposits into _his2 fertile rear, it comes as little surprise when @@.lime;_he2 ends up pregnant with $slaves[$i].slaveName's child.@@ - <</if>> - <</if>> - <<elseif canDoAnal($slaves[_dom])>> - <<if ($slaves[$i].devotion < -20)>> - Since $slaves[_dom].slaveName loves anal, $slaves[$i].slaveName finds $himself forced to give analingus on command. $He spends the week trying to avoid servicing $slaves[_dom].slaveName's insatiable _domRace ass with $his _subRace mouth, but $slaves[_dom].slaveName insists. @@.hotpink;$slaves[_dom].slaveName enjoys being able to force $slaves[$i].slaveName to service _his2 butt.@@ - <<elseif ($slaves[$i].devotion <= 50)>> - Since $slaves[_dom].slaveName loves anal, $slaves[$i].slaveName finds $himself giving analingus on command. $He spends the week servicing $slaves[_dom].slaveName's insatiable _domRace ass with $his _subRace mouth. @@.hotpink;$slaves[_dom].slaveName enjoys having _his2 ass pleasured whenever _he2 wants it.@@ - <<else>> - Since $slaves[_dom].slaveName loves anal play, $slaves[$i].slaveName lavishes attention on _his2 butt. $He spends the week servicing $slaves[_dom].slaveName's insatiable _domRace ass with $his _subRace mouth. @@.hotpink;$slaves[_dom].slaveName enjoys having an enthusiastic anal playmate.@@ - <</if>> - <<set _oralUse = random(9,12)>> - <<set $slaves[_dom].counter.anal += _oralUse, $analTotal += _oralUse>> - <<else>> - <<if ($slaves[$i].devotion < -20)>> - Since $slaves[_dom].slaveName loves _his2 rear, $slaves[$i].slaveName finds $himself forced to <<if !hasAnyArms($slaves[$i])>>massage<<else>>fondle<</if>> it on command. $He spends the week trying to avoid servicing $slaves[_dom].slaveName's _domRace ass with $his _subRace <<if !hasAnyArms($slaves[$i])>>face<<else>>_hands<</if>>, but $slaves[_dom].slaveName insists. @@.hotpink;$slaves[_dom].slaveName enjoys being able to force $slaves[$i].slaveName to service _his2 butt.@@ - <<elseif ($slaves[$i].devotion <= 50)>> - Since $slaves[_dom].slaveName loves $his rear, $slaves[$i].slaveName finds $himself <<if !hasAnyArms($slaves[$i])>>massaging<<else>>fondling<</if>> it on command. $He spends the week servicing $slaves[_dom].slaveName's _domRace ass with $his _subRace <<if !hasAnyArms($slaves[$i])>>face<<else>>_hands<</if>>. @@.hotpink;$slaves[_dom].slaveName enjoys having _his2 ass pleasured whenever _he2 wants it.@@ - <<else>> - Since $slaves[_dom].slaveName loves _his2 rear played with, $slaves[$i].slaveName lavishes attention on _his2 butt. $He spends the week fondling $slaves[_dom].slaveName's _domRace ass with $his _subRace <<if !hasAnyArms($slaves[$i])>>face<<else>>_hands<</if>>. @@.hotpink;$slaves[_dom].slaveName enjoys having a playmate so fond of _his2 booty.@@ - <</if>> - <</if>> -<<elseif ($slaves[$i].devotion >= -20) && ($slaves[_dom].fetish == "submissive") && ($slaves[_dom].fetishKnown == 1) && ($slaves[_dom].fetishStrength > 60)>> - $slaves[_dom].slaveName loves to submit, and tells $slaves[$i].slaveName to fuck _him2; when $slaves[$i].slaveName asks how, $slaves[_dom].slaveName tells $him to take charge. - <<if canPenetrate($slaves[$i])>> - <<set _penetrativeUse = random(9,12)>> - <<if isAmputee($slaves[$i])>> - <<if canDoVaginal($slaves[_dom]) && $slaves[_dom].vagina != 0>> - $slaves[_dom].slaveName finds _himself2 under the weight of $slaves[$i].slaveName's limbless body and _his2 _domRace slit accommodating an eager _subRace cock. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top for $his efforts. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind@@ being expected to fuck a willing pussy. - <<set $slaves[_dom].counter.vaginal += _penetrativeUse, $vaginalTotal += _penetrativeUse>> - <<if canImpreg($slaves[_dom], $slaves[$i])>> - <<= knockMeUp($slaves[_dom], 30, 0, $slaves[$i].ID, 1)>> - <<if $slaves[_dom].pregKnown == 1>> - With so many potent loads kissing _his2 cervix, it comes as little surprise when @@.lime;_he2 ends up pregnant with $slaves[$i].slaveName's child.@@ - <</if>> - <</if>> - <<elseif canDoAnal($slaves[_dom]) && $slaves[_dom].anus != 0>> - $slaves[_dom].slaveName finds _himself2 under the weight of $slaves[$i].slaveName's limbless body and _his2 _domRace ass accommodating an eager _subRace cock. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top for $his efforts. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind@@ being expected to fuck a willing asshole. - <<set $slaves[_dom].counter.anal += _penetrativeUse, $analTotal += _penetrativeUse>> - <<if canImpreg($slaves[_dom], $slaves[$i])>> - <<= knockMeUp($slaves[_dom], 30, 1, $slaves[$i].ID, 1)>> - <<if $slaves[_dom].pregKnown == 1>> - With so many potent deposits into _his2 fertile rear, it comes as little surprise when @@.lime;_he2 ends up pregnant with $slaves[$i].slaveName's child.@@ - <</if>> - <</if>> - <<else>> - $slaves[_dom].slaveName finds _his2 head under the weight of $slaves[$i].slaveName's limbless body and _his2 _domRace face accommodating an eager _subRace cock. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top for $his efforts. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind@@ being expected to fuck a willing asshole. - <<set $slaves[_dom].counter.oral += _penetrativeUse, $oralTotal += _penetrativeUse>> - <</if>> - <<else>> - <<if canDoVaginal($slaves[_dom]) && $slaves[_dom].vagina != 0>> - $slaves[_dom].slaveName finds _himself2 with _his2 face pushed firmly into _his2 bedsheets and _his2 _domRace slit accommodating $slaves[$i].slaveName's eager _subRace cock. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind@@ being expected to fuck a willing pussy. - <<set $slaves[_dom].counter.vaginal += _penetrativeUse, $vaginalTotal += _penetrativeUse>> - <<if canImpreg($slaves[_dom], $slaves[$i])>> - <<= knockMeUp($slaves[_dom], 30, 0, $slaves[$i].ID)>> - <<if $slaves[_dom].pregKnown == 1>> - With so many potent loads kissing _his2 cervix, it comes as little surprise when @@.lime;_he2 ends up pregnant with $slaves[$i].slaveName's child.@@ - <</if>> - <</if>> - <<elseif canDoAnal($slaves[_dom]) && $slaves[_dom].anus != 0>> - $slaves[_dom].slaveName finds _himself2 with _his2 face pushed firmly into _his2 bedsheets and _his2 _domRace ass accommodating $slaves[$i].slaveName's eager _subRace cock. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind@@ being expected to fuck a willing asshole. - <<set $slaves[_dom].counter.anal += _penetrativeUse, $analTotal += _penetrativeUse>> - <<if canImpreg($slaves[_dom], $slaves[$i])>> - <<= knockMeUp($slaves[_dom], 30, 1, $slaves[$i].ID)>> - <<if $slaves[_dom].pregKnown == 1>> - With so many potent deposits into _his2 fertile rear, it comes as little surprise when @@.lime;_he2 ends up pregnant with $slaves[$i].slaveName's child.@@ - <</if>> - <</if>> - <<else>> - $slaves[_dom].slaveName finds _himself2 with _his2 face pushed firmly into $slaves[$i].slaveName's crotch and _his2 _domRace face accommodating an eager _subRace cock. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind@@ being expected to fuck a willing asshole. - <<set $slaves[_dom].counter.oral += _penetrativeUse, $oralTotal += _penetrativeUse>> - <</if>> - <</if>> - <<elseif ($slaves[$i].clit > 2)>> - <<if isAmputee($slaves[$i])>> - $slaves[_dom].slaveName finds _himself2 pinned by the weight of $slaves[$i].slaveName's limbless body and the quickly hardening _subRace clit being pushed eagerly into _his2 _domRace mouth. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top for $his efforts. - <<else>> - $slaves[_dom].slaveName finds _himself2 with _his2 back pushed firmly into _his2 bedsheets and $slaves[$i].slaveName's quickly hardening clit being pushed eagerly into _his2 mouth. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top. - <</if>> - $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind@@ constant oral attention. - <<set _penetrativeUse = random(9,12)>> - <<set $slaves[_dom].counter.oral += _penetrativeUse, $oralTotal += _penetrativeUse>> - <<else>> - <<if isAmputee($slaves[$i])>> - <<if canDoVaginal($slaves[_dom])>> - $slaves[_dom].slaveName finds _himself2 under the weight of $slaves[$i].slaveName's limbless body and _his2 _domRace slit molested by an eager tongue. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top for $his efforts. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind@@ being expected to torment a willing pussy. - <<set _oralUse = random(9,12)>> - <<set $slaves[_dom].counter.vaginal += _oralUse, $vaginalTotal += _oralUse>> - <<elseif !($slaves[_dom].chastityPenis) && $slaves[_dom].dick > 0>> - $slaves[_dom].slaveName finds _himself2 under the weight of $slaves[$i].slaveName's limbless body with the tight embrace of _subRace lips around _his2 _domRace cock. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top for $his efforts. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind@@ being expected to torment a willing dick. - <<set _oralUse = random(9,12)>> - <<set $slaves[_dom].counter.penetrative += _oralUse, $penetrativeTotal += _oralUse>> - <<else>> - $slaves[_dom].slaveName finds _himself2 under the weight of $slaves[$i].slaveName's limbless body and - <<if $slaves[_dom].boobs >= 300>> - _his2 _domRace tits - <<else>> - _his2 <<print nippleColor($slaves[_dom])>> nipples - <</if>> - under attack by an eager mouth. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top for $his efforts. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind@@ being expected to play with a willing chest. - <<set _oralUse = random(9,12)>> - <<set $slaves[_dom].counter.mammary += _oralUse, $mammaryTotal += _oralUse>> - <</if>> - <<else>> - <<if canDoVaginal($slaves[_dom]) && $slaves[_dom].vagina != 0>> - $slaves[_dom].slaveName finds _himself2 with _his2 face pushed firmly into _his2 bedsheets and _his2 _domRace slit accommodating $slaves[$i].slaveName's thrusting _subRace fingers. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind the fun.@@ - <<set _fingerBang = random(9,12)>> - <<set $slaves[_dom].counter.vaginal += _fingerBang, $vaginalTotal += _fingerBang>> - <<elseif canDoAnal($slaves[_dom]) && $slaves[_dom].anus != 0>> - $slaves[_dom].slaveName finds _himself2 with _his2 face pushed firmly into _his2 bedsheets and _his2 _domRace ass accommodating $slaves[$i].slaveName's thrusting _subRace fingers. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind the fun.@@ - <<set _fingerBang = random(9,12)>> - <<set $slaves[_dom].counter.anal += _fingerBang, $analTotal += _fingerBang>> - <<else>> - $slaves[_dom].slaveName finds _himself2 pushed firmly into _his2 bedsheets and _his2 - <<if $slaves[_dom].boobs >= 300>> - _domRace tits - <<else>> - <<print nippleColor($slaves[_dom])>> nipples - <</if>> - being roughly handled by $slaves[$i].slaveName's _subRace fingers. Afterward, $slaves[_dom].slaveName lavishes kisses on _his2 satisfactory top. $slaves[_dom].slaveName @@.hotpink;enjoys a week of constant submission,@@ and even though $he's technically being used, $slaves[$i].slaveName @@.hotpink;doesn't mind the fun.@@ - <<set _fingerBang = random(9,12)>> - <<set $slaves[_dom].counter.mammary += _fingerBang, $mammaryTotal += _fingerBang>> - <</if>> - <</if>> - <</if>> - <<set $slaves[$i].devotion += 1>> -<<elseif ($slaves[$i].devotion >= -20) && ($slaves[_dom].fetishKnown == 1) && ($slaves[_dom].fetishStrength > 60) && ($slaves[_dom].fetish == "dom") && canWalk($slaves[_dom])>> - $slaves[_dom].slaveName loves to dominate, and the first indication $slaves[$i].slaveName gets of what $he's in for this week is when $slaves[_dom].slaveName ambushes $him in the dormitory, tackles $him from behind, and - <<if isAmputee($slaves[$i])>> - bursts out <<if canTalk($slaves[_dom])>>laughing<<else>>in silent laughter<</if>> at $his inability to right $himself without limbs. - <<else>> - hogties $him with sheets. - <</if>> - $slaves[$i].slaveName wriggles a little but doesn't really start to attempt escape until $slaves[_dom].slaveName begins to carefully tease $his _subRace - <<if $slaves[$i].dick > 0 && !($slaves[$i].chastityPenis)>> - dickhead, - <<elseif $slaves[$i].clit > 0>> - clit, - <<elseif canDoVaginal($slaves[$i])>> - pussy, - <<else>> - nipples, - <</if>> - edging $him right up to the point of orgasm and making $him beg. It's a long but @@.hotpink;obedience-building@@ week for $slaves[$i].slaveName, and $slaves[_dom].slaveName certainly @@.hotpink;enjoys _his2 toy.@@ - <<set $slaves[$i].devotion += 1>> - <<if $slaves[$i].need && $slaves[$i].fetishKnown>> - <<if $slaves[$i].fetish == "submissive" || $slaves[$i].fetish == "masochist">> - $slaves[$i].slaveName needs this kind of treatment to be truly sexually satisfied; this week, $his desire for abuse is sated. - <<set $slaves[$i].need = 0>> - <</if>> - <</if>> -<<elseif ($slaves[_dom].fetishKnown == 1) && ($slaves[_dom].fetishStrength > 60) && ($slaves[_dom].fetish == "sadist") && canWalk($slaves[_dom])>> - $slaves[_dom].slaveName loves to inflict pain, and the first indication $slaves[$i].slaveName gets of what $he's in for this week is when $slaves[_dom].slaveName ambushes _him2 in the dormitory, tackles $him from behind, and hogties $him with sheets. <<if canTalk($slaves[_dom])>>$slaves[_dom].slaveName bends close to the immobilized $slaves[$i].slaveName's ear and whispers to $him that $he might as well scream.<<else>>$slaves[_dom].slaveName carefully uses gestures to communicate to $him that $he might as well scream.<</if>> $slaves[$i].slaveName's struggles to escape become desperate at this, and more desperate still when the week's first @@.red;beating@@ starts. Later, $he tries going limp and unresistant, but that just makes the annoyed $slaves[_dom].slaveName beat _his2 pain slave all the harder until _he2 gets a reaction again. It's a long and @@.hotpink;will breaking@@ week for $slaves[$i].slaveName, and $slaves[_dom].slaveName certainly @@.hotpink;enjoys torturing _his2 toy.@@ - <<set $slaves[$i].devotion += 1>> - <<run healthDamage($slaves[$i], 3)>> - <<if $slaves[$i].need && $slaves[$i].fetishKnown>> - <<if $slaves[$i].fetish == "submissive" || $slaves[$i].fetish == "masochist">> - $slaves[$i].slaveName needs this kind of treatment to be truly sexually satisfied; this week, $his desire for abuse is sated. - <<set $slaves[$i].need = 0>> - <</if>> - <</if>> -<<elseif ($slaves[_dom].fetishKnown == 1) && ($slaves[_dom].fetishStrength > 60) && ($slaves[_dom].fetish == "boobs")>> - <<if ($slaves[_dom].nipples == "fuckable") && canPenetrate($slaves[$i])>> - Since $slaves[_dom].slaveName loves to have _his2 nipples fucked, $slaves[$i].slaveName spends the week getting to use $his dick for a change. $slaves[$i].slaveName's _subRace body thrusting into $slaves[_dom].slaveName's supple _domRace breasts is a frequent sight as $slaves[_dom].slaveName takes _his2 pleasure. @@.hotpink;$slaves[_dom].slaveName enjoys being able to use $slaves[$i].slaveName.@@ - <<set _penetrativeUse = random(9,12)>> - <<set $slaves[_dom].counter.mammary += _penetrativeUse, $mammaryTotal += _penetrativeUse>> - <<set $slaves[_dom].counter.penetrative += _penetrativeUse, $penetrativeTotal += _penetrativeUse>> - <<elseif ($slaves[_dom].lactation > 0)>> - <<if ($slaves[$i].devotion < -20)>> - Since $slaves[_dom].slaveName loves giving milk, $slaves[$i].slaveName finds $himself forced to nurse. $He spends the week trying to avoid guzzling down milk from $slaves[_dom].slaveName's <<print nippleColor($slaves[_dom])>> _domRace nipples with $his _subRace mouth, but $slaves[_dom].slaveName insists. @@.hotpink;$slaves[_dom].slaveName enjoys being able to force $slaves[$i].slaveName to drink from _him2.@@ - <<elseif ($slaves[$i].devotion <= 50)>> - Since $slaves[_dom].slaveName loves giving milk, $slaves[$i].slaveName finds $himself constantly nursing. $He spends the week obediently taking milk from $slaves[_dom].slaveName's <<print nippleColor($slaves[_dom])>> _domRace nipples with $his _subRace mouth, to $slaves[_dom].slaveName's motherly satisfaction. @@.hotpink;$slaves[_dom].slaveName enjoys having $slaves[$i].slaveName to drink from _him2 whenever _he2 feels overfull.@@ - <<else>> - Since $slaves[_dom].slaveName loves giving milk, $slaves[$i].slaveName constantly nurses from _him2. $He spends the week happily taking milk from $slaves[_dom].slaveName's <<print nippleColor($slaves[_dom])>> _domRace nipples with $his hungry _subRace mouth, to $slaves[_dom].slaveName's motherly delight. @@.hotpink;$slaves[_dom].slaveName loves having $slaves[$i].slaveName to feed and fill.@@ - <</if>> - <<else>> - <<if ($slaves[$i].devotion < -20)>> - Since $slaves[_dom].slaveName loves having _his2 breasts attended to, $slaves[$i].slaveName finds $himself forced to <<if !hasAnyArms($slaves[$i])>>nuzzle and suck<<else>>knead, massage, and even suck<</if>>. $He spends the week trying to avoid servicing $slaves[_dom].slaveName's _domRace breasts with $his _subRace <<if !hasAnyArms($slaves[$i])>>face<<else>>_hands<</if>>, but $slaves[_dom].slaveName insists. @@.hotpink;$slaves[_dom].slaveName enjoys being able to force $slaves[$i].slaveName to see to _his2 tits.@@ - <<elseif ($slaves[$i].devotion <= 50)>> - Since $slaves[_dom].slaveName loves having _his2 breasts attended to, $slaves[$i].slaveName finds $himself <<if !hasAnyArms($slaves[$i])>>nuzzling and sucking<<else>>kneading, massaging, and even sucking<</if>>. $He spends the week obediently servicing $slaves[_dom].slaveName's _domRace breasts with $his _subRace <<if !hasAnyArms($slaves[$i])>>face<<else>>_hands<</if>>, to $slaves[_dom].slaveName's languorous pleasure. @@.hotpink;$slaves[_dom].slaveName enjoys having $slaves[$i].slaveName to see to _his2 tits.@@ - <<else>> - Since $slaves[_dom].slaveName loves having _his2 breasts attended to, $slaves[$i].slaveName pampers _his2 breasts shamelessly. $He spends the week devotedly massaging $slaves[_dom].slaveName's _domRace breasts with $his _subRace <<if !hasAnyArms($slaves[$i])>>face<<else>>_hands<</if>>, sucking lovingly at _his2 nipples, and caring for everything with lotions and oils<<if !hasAnyArms($slaves[$i])>> (as best $he can without hands)<</if>>. They sleep together so that $slaves[$i].slaveName can <<if !hasAnyArms($slaves[$i])>>snuggle into _his2 bust<<else>>hold _his2 boobs<</if>> as $he goes to sleep, which sometimes results in less sleep for both as the breast play continues long into the night. @@.hotpink;$slaves[_dom].slaveName enjoys having $slaves[$i].slaveName to see to _his2 tits.@@ - <</if>> - <</if>> - <<if $slaves[_dom].lactation > 0>> - <<set $slaves[_dom].lactationDuration = 2>> - <<set $slaves[_dom].boobs -= $slaves[_dom].boobsMilk, $slaves[_dom].boobsMilk = 0>> - <</if>> - <<set _oralUse = random(9,12)>> - <<set $slaves[_dom].counter.mammary += _oralUse, $mammaryTotal += _oralUse>> -<<elseif ($slaves[$i].dick > 0) && ($slaves[$i].balls != 0) && !canAchieveErection($slaves[$i]) && !($slaves[$i].chastityPenis) && ($slaves[_dom].fetishKnown == 1) && ($slaves[_dom].fetishStrength > 60) && ($slaves[_dom].fetish == "cumslut")>> - Since $slaves[_dom].slaveName loves cum, and $slaves[$i].slaveName has a dick, $slaves[_dom].slaveName has _his2 own private semen dispenser, even if it's rather limp. $slaves[_dom].slaveName sometimes gets tired of having to work hard for cum, so _he2 spends the week making $slaves[$i].slaveName painstakingly bring $his flaccid dick almost to orgasm before $slaves[_dom].slaveName wraps _his2 _domRace lips around $slaves[$i].slaveName's _subRace soft dickhead to suck down the cum. @@.hotpink;$slaves[_dom].slaveName enjoys having a servile dick on demand.@@ - <<set _penetrativeUse = random(9,12)>> - <<set $slaves[_dom].counter.oral += _penetrativeUse, $oralTotal += _penetrativeUse>> -<<elseif ($slaves[$i].dick > 0) && ($slaves[$i].balls != 0) && !($slaves[$i].chastityPenis) && ($slaves[_dom].fetishKnown == 1) && ($slaves[_dom].fetishStrength > 60) && ($slaves[_dom].fetish == "cumslut")>> - Since $slaves[_dom].slaveName loves cum, and $slaves[$i].slaveName has a dick, $slaves[_dom].slaveName has _his2 own private semen dispenser. $slaves[_dom].slaveName sometimes gets tired of having to work hard for cum, so _he2 spends the week - <<if hasAnyArms($slaves[_dom])>> - stimulating poor $slaves[$i].slaveName's <<if $slaves[$i].prostate>>prostate<<else>>balls<</if>> to force - <<else>> - ordering $slaves[$i].slaveName to stimulate $his own <<if $slaves[$i].prostate>>prostate<<else>>balls<</if>> to force - <</if>> - $him to climax so $slaves[_dom].slaveName can wrap _his2 _domRace lips around $slaves[$i].slaveName's _subRace dickhead to suck down _his2 cum. @@.hotpink;$slaves[_dom].slaveName enjoys having a servile dick on demand.@@ - <<set _penetrativeUse = random(9,12)>> - <<set $slaves[_dom].counter.oral += _penetrativeUse, $oralTotal += _penetrativeUse>> -<<elseif ($slaves[_dom].energy > 95)>> - <<if ($slaves[$i].devotion < -20)>> - Since $slaves[_dom].slaveName loves to fuck, $slaves[$i].slaveName spends the week getting fucked. $slaves[_dom].slaveName's _domRace body atop $slaves[$i].slaveName's resisting _subRace form is a frequent sight as $slaves[_dom].slaveName takes _his2 pleasure. @@.hotpink;$slaves[_dom].slaveName enjoys being able to use $slaves[$i].slaveName.@@ - <<elseif ($slaves[$i].devotion <= 50)>> - Since $slaves[_dom].slaveName loves to fuck, $slaves[$i].slaveName spends the week getting fucked. $slaves[_dom].slaveName's _domRace body atop $slaves[$i].slaveName's compliant _subRace form is a frequent sight as $slaves[_dom].slaveName takes _his2 pleasure. @@.hotpink;$slaves[_dom].slaveName enjoys being able to use $slaves[$i].slaveName.@@ - <<else>> - Since $slaves[_dom].slaveName loves to fuck, $slaves[$i].slaveName spends the week getting fucked. $slaves[_dom].slaveName's _domRace body atop $slaves[$i].slaveName's enthusiastic _subRace form is a frequent sight as the two of them share pleasure. @@.hotpink;$slaves[_dom].slaveName enjoys having an extra outlet for _his2 sexual needs.@@ - <</if>> - <<if canPenetrate($slaves[_dom])>> - <<set _fuckCount = random(15,25)>> - <<= SimpleSexAct.Slaves($slaves[$i], $slaves[_dom], _fuckCount)>> - <<elseif canPenetrate($slaves[$i]) && ((canDoVaginal($slaves[_dom]) && $slaves[_dom].vagina > 0) || (canDoAnal($slaves[_dom]) && $slaves[_dom].anus > 0))>> /* yes, that means $he rides _him2 */ - <<set _fuckCount = random(15,25)>> - <<= SimpleSexAct.Slaves($slaves[_dom], $slaves[$i], _fuckCount)>> - <<else>> - <<set _oralUse = random(15,25)>> - <</if>> -<<elseif ($slaves[_dom].dick > 0) && canPenetrate($slaves[_dom])>> - <<if ($slaves[$i].devotion < -20)>> - $slaves[_dom].slaveName doesn't get to use _his2 still-functional cock as much as _he2 would like; it often stands stiff and untended while _he2's being used. Not this week: $slaves[$i].slaveName spends the week with $slaves[_dom].slaveName's _domRace dick thrusting in and out of $his _subRace body, whenever _he2 feels like forcing it into $slaves[$i].slaveName's unwilling holes. @@.hotpink;$slaves[_dom].slaveName loves having someone to fuck whenever _he2 wants.@@ - <<elseif ($slaves[$i].devotion <= 50)>> - $slaves[_dom].slaveName doesn't get to use _his2 still-functional cock as much as _he2 would like; it often stands stiff and untended while _he2's being used. Not this week: $slaves[$i].slaveName spends the week with $slaves[_dom].slaveName's _domRace dick thrusting in and out of $his _subRace body, whenever _he2 feels like putting it into $slaves[$i].slaveName's compliant holes. @@.hotpink;$slaves[_dom].slaveName loves having someone to stick _his2 dick in at last.@@ - <<else>> - $slaves[_dom].slaveName doesn't get to use _his2 still-functional cock as much as _he2 would like; it often stands stiff and untended while _he2's being used. Not this week: $slaves[$i].slaveName spends the week with $slaves[_dom].slaveName's _domRace dick thrusting in and out of $his _subRace body, whenever _he2 feels like having an enthusiastic fuck. @@.hotpink;$slaves[_dom].slaveName loves having someone to tend to _his2 prick at last.@@ - <</if>> - <<set _fuckCount = random(9,12)>> - <<= SimpleSexAct.Slaves($slaves[$i], $slaves[_dom], _fuckCount)>> -<<elseif (hasAnyArms($slaves[_dom])) && ($slaves[_dom].attrXX > 85) && ($slaves[$i].dick == 0) && ($slaves[$i].vagina > -1)>> - <<if ($slaves[$i].devotion < -20)>> - Since $slaves[_dom].slaveName loves girls, $slaves[$i].slaveName finds $himself groped, fingered, and toyed with. $He spends the week trying to avoid $slaves[_dom].slaveName's playful _domRace <<if hasBothArms($slaves[_dom])>>hands<<else>>fingers<</if>>, but they rove across $his _subRace body anyway. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice little toy right at hand,@@ even if $he does have to be forced. - <<elseif ($slaves[$i].devotion <= 50)>> - Since $slaves[_dom].slaveName loves girls, $slaves[$i].slaveName finds $himself groped, fingered, and toyed with. $He spends the week accepting the attention of $slaves[_dom].slaveName's playful _domRace <<if hasBothArms($slaves[_dom])>>hands<<else>>fingers<</if>>. They rove across $his _subRace body, eliciting embarrassed arousal. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice little toy right at hand,@@ even if $he is a little hesitant. - <<else>> - Since $slaves[_dom].slaveName loves girls, $slaves[$i].slaveName finds $himself with a frank and open lover for the week. $He spends the week accepting the attention of $slaves[_dom].slaveName's adoring _domRace <<if hasBothArms($slaves[_dom])>>hands<<else>>fingers<</if>>. They rove across $his _subRace body, knowing just where to touch and where to press. @@.hotpink;$slaves[_dom].slaveName enjoys having a compliant <<= $girl>>friend,@@ and they spend as much time together as they can. - <</if>> - <<if canPenetrate($slaves[_dom])>> - <<set _fuckCount = random(9,12)>> - <<= SimpleSexAct.Slaves($slaves[$i], $slaves[_dom], _fuckCount)>> - <<else>> - <<set _oralUse = random(9,12)>> - <</if>> -<<elseif ($slaves[$i].dick > 0) && hasAnyArms($slaves[_dom]) && ($slaves[_dom].attrXY > 85)>> - <<if canPenetrate($slaves[$i])>> - <<if ($slaves[$i].devotion < -20)>> - Since $slaves[_dom].slaveName loves hard cocks, $slaves[$i].slaveName finds $himself forced to get hard and fuck. $He spends the week trying to avoid $slaves[_dom].slaveName's constant demands. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice dick right at hand,@@ even if it does have to be forced to stand up for _him2. - <<elseif ($slaves[$i].devotion <= 50)>> - Since $slaves[_dom].slaveName loves hard cocks, $slaves[$i].slaveName finds $himself required to get hard and fuck constantly. $He spends the week doing $his best to satisfy $slaves[_dom].slaveName's constant demands. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice dick right at hand,@@ and won't leave it alone. - <<else>> - Since $slaves[_dom].slaveName loves hard cocks, $slaves[$i].slaveName finds $himself asked to get hard and fuck constantly. $He spends the week doing $his best to satisfy $slaves[_dom].slaveName's constant demands. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice dick right at hand,@@ and won't leave it alone. - <</if>> - <<elseif $slaves[$i].dick > 6 && $slaves[$i].balls > 0>> - <<if ($slaves[$i].devotion < -20)>> - Since $slaves[_dom].slaveName loves cocks, even big soft ones, $slaves[$i].slaveName finds $himself being sucked, groped, and cruelly taunted for $his inability to get hard. $He spends the week trying to avoid $slaves[_dom].slaveName's abuse of $his poor oversized penis. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice dick right at hand,@@ even if it's only good for taunting and torture. - <<elseif ($slaves[$i].devotion <= 50)>> - Since $slaves[_dom].slaveName loves cocks, even big soft ones, $slaves[$i].slaveName finds $himself being sucked, groped, and toyed with. $He spends the week complying with $slaves[_dom].slaveName's amusements. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice dick right at hand,@@ even if it's only good as a body pillow. - <<else>> - Since $slaves[_dom].slaveName loves cocks, even big soft ones, $slaves[$i].slaveName finds $himself being sucked, groped, and played with until $he comes. $He spends the week enjoying with $slaves[_dom].slaveName's little games. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice dick right at hand,@@ even if it's only good as a body pillow that occasionally discharges blobs of semen. - <</if>> - <<else>> - <<if ($slaves[$i].devotion < -20)>> - Since $slaves[_dom].slaveName loves cocks, even soft ones, $slaves[$i].slaveName finds $himself being sucked, groped, and cruelly taunted for $his impotence. $He spends the week trying to avoid $slaves[_dom].slaveName's abuse of $his poor useless penis. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice dick right at hand,@@ even if it's only good for taunting and torture. - <<elseif ($slaves[$i].devotion <= 50)>> - Since $slaves[_dom].slaveName loves cocks, even soft ones, $slaves[$i].slaveName finds $himself being sucked, groped, and toyed with. $He spends the week complying with $slaves[_dom].slaveName's amusements. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice dick right at hand,@@ even if it's only good as a soft toy. - <<else>> - Since $slaves[_dom].slaveName loves cocks, even soft ones, $slaves[$i].slaveName finds $himself being sucked, groped, and played with until $he comes. $He spends the week enjoying with $slaves[_dom].slaveName's little games. @@.hotpink;$slaves[_dom].slaveName enjoys having a nice dick right at hand,@@ even if it's only good as a soft, dripping toy. - <</if>> - <</if>> - <<set _fuckCount = random(9,12)>> - <<= SimpleSexAct.Slaves($slaves[_dom], $slaves[$i], _fuckCount)>> -<<elseif isAmputee($slaves[$i])>> - $slaves[_dom].slaveName doesn't have any special desires, so _he2 simply uses the helpless $slaves[$i].slaveName for comfort and convenience. $slaves[$i].slaveName finds $his helpless _subRace torso being used as a bath toy, a bedwarmer, and for sexual convenience. @@.hotpink;$slaves[_dom].slaveName enjoys the ease and companionship.@@ - <<set _fuckCount = random(9,12)>> - <<= SimpleSexAct.Slaves($slaves[$i], $slaves[_dom], _fuckCount)>> -<<else>> - $slaves[_dom].slaveName doesn't have any special desires $slaves[$i].slaveName can satisfy, so _he2 simply uses $slaves[$i].slaveName for comfort and convenience. $slaves[$i].slaveName washes $his superior's _domRace body thoroughly and uses $his own _subRace body to warm $slaves[_dom].slaveName's bed at night. @@.hotpink;$slaves[_dom].slaveName enjoys the ease and companionship.@@ - <<set _fuckCount = random(9,12)>> - <<= SimpleSexAct.Slaves($slaves[$i], $slaves[_dom], _fuckCount)>> -<</if>> - -<<set _oralUse = $slaves[$i].counter.oral - _oralUse, _analUse = $slaves[$i].counter.anal - _analUse, _vaginalUse = $slaves[$i].counter.vaginal - _vaginalUse, _mammaryUse = $slaves[$i].counter.mammary - _mammaryUse, _penetrativeUse = $slaves[$i].counter.penetrative - _penetrativeUse>> -/% This is here because SimpleSexAct.Slaves doesn't update _analUse, etc. and that is needed to calculate _cervixPump %/ - -<<set _cervixPump = 0>> -<<if $slaves[$i].cervixImplant == 1 || $slaves[$i].cervixImplant == 3>> - <<set _cervixPump += 20*_vaginalUse>> -<</if>> -<<if $slaves[$i].cervixImplant == 2 || $slaves[$i].cervixImplant == 3>> - <<set _cervixPump += 20*_analUse>> -<</if>> - -<<set $slaves[$i].need -= ((_penetrativeUse+_vaginalUse+_analUse)*5)>> - -<<if $slaves[$i].lactation > 0 && _mammaryUse > 0>> - <<set $slaves[$i].lactationDuration = 2>> - <<if $slaves[$i].boobsMilk > 0>> - <<set $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>> - <</if>> -<</if>> - -<<if $slaves[$i].fetishKnown>> - <<switch $slaves[$i].fetish>> - <<case "masochist" "submissive">> - <<if _analUse+_vaginalUse > 0>> - Being someone's submissive toy really satisfies $slaves[$i].slaveName. - <<set $slaves[$i].need = 0>> - <</if>> - <<case "dom" "sadist">> - <<if _penetrativeUse > 0>> - Getting to be on top is precious, and it really satisfies $slaves[$i].slaveName. - <<set $slaves[$i].need = 0>> - <</if>> - <<case "cumslut">> - <<if _oralUse > 0>> - Being someone's oral toy really satisfies $slaves[$i].slaveName. - <<set $slaves[$i].need = 0>> - <</if>> - <<case "buttslut">> - <<if _analUse > 0>> - Having $his butthole serve as someone's toy really satisfies $slaves[$i].slaveName. - <<set $slaves[$i].need = 0>> - <</if>> - <<case "pregnancy">> - <<if $slaves[$i].mpreg == 0>> - <<if _vaginalUse > 0>> - Having $his pussy serve as someone's toy really satisfies $slaves[$i].slaveName. - <<set $slaves[$i].need = 0>> - <</if>> - <<else>> - <<if _analUse > 0>> - Having $his ass serve as someone's toy really satisfies $slaves[$i].slaveName. - <<set $slaves[$i].need = 0>> - <</if>> - <</if>> - <<case "humiliation">> - Having all the other slaves see $him in such a humiliating role really satisfies $slaves[$i].slaveName. - <<set $slaves[$i].need = 0>> - <<case "boobs">> - <<if _mammaryUse > 0>> - Having $his tits serve as someone's toy really satisfies $slaves[$i].slaveName. - <<set $slaves[$i].need = 0, $slaves[$i].induceLactation += 2>> - <<= induceLactation($slaves[$i])>> - <</if>> - <</switch>> -<</if>> - -<<if _cervixPump > 0>> - $He notices $his @@.lime;belly has swollen@@ from all the - <<if $slaves[$i].cervixImplant == 1>> - vaginal - <<elseif $slaves[$i].cervixImplant == 2>> - anal - <</if>> - sex $he had throughout the week. - <<set $slaves[$i].bellyImplant += _cervixPump>> -<</if>> - -<<set $slaves[_dom].devotion += 4, $slaves[_dom].need = 0>> - -<<if $slaves[_dom].health.condition < 40>> - @@.green;$slaves[_dom].slaveName's health improves@@ with $slaves[$i].slaveName to serve _him2 and help with some of _his2 harder duties. - <<run improveCondition($slaves[_dom], 10)>> -<</if>> - -<<if $slaves[$i].devotion <= 20>> - <<if $slaves[$i].trust >= -20>> - $slaves[$i].slaveName @@.gold;is further habituated to subservience@@ by $slaves[_dom].slaveName. - <<set $slaves[$i].trust -= 5>> - <<if $slaves[$i].sexualQuirk == "strugglefuck queen">> - Secretly, though, $slaves[$i].slaveName gets off on being raped, @@.hotpink;and wants more.@@ - <<set $slaves[$i].devotion += 1>> - <</if>> - <</if>> -<</if>> - -<<if $slaves[$i].behavioralFlaw == "hates men">> - <<if $slaves[_dom].dick > 0 && $slaves[$i].devotion > 20>> - Spending so much time in close proximity to a slave with a dick @@.green;reconciles $him to getting fucked by them.@@ - <<set $slaves[$i].behavioralFlaw = "none">> - <</if>> -<<elseif $slaves[$i].behavioralFlaw == "hates women">> - <<if $slaves[_dom].vagina != -1 && $slaves[$i].devotion > 20>> - Spending so much time in close proximity to a slave with a pussy @@.green;reconciles $him to sex with girls.@@ - <<set $slaves[$i].behavioralFlaw = "none">> - <</if>> -<</if>> - -<<if $slaves[$i].relationship == 0>> - <<if $slaves[$i].rivalryTarget != $slaves[_dom].ID && $slaves[$i].devotion >= 10 && $slaves[_dom].relationship == 0>> - <<if random(1,100) > 50>> - $slaves[$i].slaveName and $slaves[_dom].slaveName enjoy spending time together and @@.lightgreen;strike up a friendship.@@ - <<set $slaves[_dom].relationship = 1, $slaves[_dom].relationshipTarget = $slaves[$i].ID, $slaves[$i].relationship = 1, $slaves[$i].relationshipTarget = $slaves[_dom].ID>> - <<else>> - $slaves[$i].slaveName and $slaves[_dom].slaveName find they enjoy their sexual relationship and @@.lightgreen;become friends with benefits.@@ - <<set $slaves[_dom].relationship = 3, $slaves[_dom].relationshipTarget = $slaves[$i].ID, $slaves[$i].relationship = 3, $slaves[$i].relationshipTarget = $slaves[_dom].ID>> - <</if>> - <</if>> -<<elseif $slaves[$i].relationship > 0>> - <<if $slaves[$i].relationshipTarget == $slaves[_dom].ID && $slaves[$i].devotion >= -20>> - $slaves[$i].slaveName likes getting fucked by $slaves[_dom].slaveName and @@.hotpink;appreciates@@ having it as $his job. - <<set $slaves[$i].devotion += 1>> - <</if>> - <<if $slaves[$i].relationship < 3>> - <<if $slaves[$i].relationshipTarget == $slaves[_dom].ID>> - <<if $slaves[$i].devotion >= 10>> - $slaves[$i].slaveName and $slaves[_dom].slaveName find that they enjoy having sex just as much as they like being friends, and become @@.lightgreen;friends with benefits.@@ - <<set $slaves[_dom].relationship = 3>> - <<set $slaves[$i].relationship = 3>> - <<elseif $slaves[$i].devotion <= 20>> - $slaves[$i].slaveName and $slaves[_dom].slaveName's relationship is @@.lightsalmon;damaged@@ by $slaves[_dom].slaveName having the right to use $slaves[$i].slaveName. - <<set $slaves[_dom].relationship--, $slaves[$i].relationship-->> - <</if>> - <</if>> - <<elseif $slaves[$i].relationship < 4>> - <<if $slaves[$i].relationshipTarget == $slaves[_dom].ID && $slaves[$i].devotion >= 10>> - $slaves[$i].slaveName and $slaves[_dom].slaveName don't have to be encouraged to have sex, but with extra time for it, they become @@.lightgreen;lovers.@@ - <<set $slaves[_dom].relationship++, $slaves[$i].relationship++>> - <</if>> - <</if>> -<</if>> - -<<if $slaves[$i].rivalry == 0>> - <<if $slaves[$i].relationshipTarget != $slaves[_dom].ID && $slaves[$i].devotion <= 50 && $slaves[_dom].rivalry == 0 && random(1,100) > 50>> - $slaves[$i].slaveName resents $slaves[_dom].slaveName for using $him and the two @@.lightsalmon;start to dislike each other.@@ - <<set $slaves[_dom].rivalry = 1, $slaves[_dom].rivalryTarget = $slaves[$i].ID, $slaves[$i].rivalry = 1, $slaves[$i].rivalryTarget = $slaves[_dom].ID>> - <</if>> -<<else>> - <<if $slaves[$i].rivalryTarget == $slaves[_dom].ID && $slaves[$i].devotion <= 50>> - $slaves[$i].slaveName resents subordinating $himself to $slaves[_dom].slaveName and @@.mediumorchid;dislikes@@ having it as $his job. - <<set $slaves[$i].devotion -= 2>> - <</if>> - <<if $slaves[$i].rivalry < 3 && $slaves[$i].rivalryTarget == $slaves[_dom].ID>> - <<if $slaves[$i].devotion <= 50>> - $slaves[$i].slaveName hates being used by $his rival $slaves[_dom].slaveName so much that their @@.lightsalmon;feud worsens.@@ - <<set $slaves[_dom].rivalry++, $slaves[$i].rivalry++>> - <<elseif $slaves[$i].devotion > 50>> - $slaves[$i].slaveName serves $slaves[_dom].slaveName so devotedly that they @@.lightgreen;work out@@ some of their differences through sex. - <<set $slaves[_dom].rivalry--, $slaves[$i].rivalry-->> - <</if>> - <</if>> -<</if>> - -<</if>> diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw index 2b866e2daa59aa3bbf56e59869fdc1b35eb5594e..af1d0b5dd2999742e0682968c45d98eeaea30f56 100644 --- a/src/utility/descriptionWidgetsFlesh.tw +++ b/src/utility/descriptionWidgetsFlesh.tw @@ -2821,7 +2821,7 @@ $He's got a <</if>> <<if $activeSlave.fuckdoll == 0>> - <<if $activeSlave.mpreg == 1 && canAchieveErection($activeSlave) && $activeSlave.belly >= 10000 && $activeSlave.prostate > 0>> + <<if $activeSlave.mpreg == 1 && canAchieveErection($activeSlave) && $activeSlave.bellyPreg >= 10000 && $activeSlave.prostate > 0>> $His huge pregnancy puts pressure on $his prostate at all times, leaving $him fully erect and trailing cum. <<elseif ($activeSlave.assignment == "work in the dairy") && ($dairyStimulatorsSetting > 1) && canAchieveErection($activeSlave)>> <<if ($activeSlave.dick > 8)>>