From 8e9d56f9a6073fde8c8f74d81e97126796856d16 Mon Sep 17 00:00:00 2001 From: Pregmodder <pregmodder@gmail.com> Date: Wed, 11 Dec 2019 22:27:03 -0500 Subject: [PATCH] Pregmod v3.1.4 --- Changelog.txt | 5 + src/endWeek/saGetMilked.js | 1001 +++++++++++++++++++ src/npc/descriptions/boobs/boobs.js | 2 +- src/uncategorized/arcadeReport.tw | 4 +- src/uncategorized/dairyReport.tw | 4 +- src/uncategorized/fullReport.tw | 4 +- src/uncategorized/masterSuiteReport.tw | 4 +- src/uncategorized/saGetMilked.tw | 683 ------------- src/uncategorized/saRules.tw | 20 +- src/uncategorized/servantsQuartersReport.tw | 4 +- 10 files changed, 1027 insertions(+), 704 deletions(-) create mode 100644 src/endWeek/saGetMilked.js delete mode 100644 src/uncategorized/saGetMilked.tw diff --git a/Changelog.txt b/Changelog.txt index 5e6f588ec14..22f2ce1ac32 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -4,6 +4,11 @@ Pregmod 12/11/2019 + 4 + -JS'd saGetMilked + -milk value slightly boosted with repopulation law + -tweaked femCum output upwards + 3 -removed lingering isPlayerFertile()s -fixes diff --git a/src/endWeek/saGetMilked.js b/src/endWeek/saGetMilked.js new file mode 100644 index 00000000000..958d008f60a --- /dev/null +++ b/src/endWeek/saGetMilked.js @@ -0,0 +1,1001 @@ +window.saGetMilked = (function saGetMilked() { + "use strict"; + + let T; + let r; + let arcology; + + // If these are moved out of the file, they must be set in it as well! + let milk; + let milkSale; + let cum; + let cumSale; + let fluid; + let fluidSale; + + // could probably move these back or something + let hormones; + let cumHormones; + let implantEffect; + + let he, him, his, hers, himself, girl, loli, He, His; + + return saGetMilked; + + /** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ + function saGetMilked(slave) { + T = State.temporary; + arcology = V.arcologies[0]; + milk = 0; + cum = 0; + fluid = 0; + r = ` `; + ({ + he, him, his, hers, himself, girl, He, His, loli + } = getPronouns(slave)); + + gatherStatistics(slave); + jobPreface(slave); + if (slave.lactation > 0) { + milkStatistics(slave); + harvestMilk(slave); + milkingEffects(slave); + } + // Limits penthouse milkers to milk only. + if (["be confined in the arcade", "get milked", "work in the dairy"].includes(slave.assignment)) { + if (slave.balls > 0) { + cumStatistics(slave); + harvestCum(slave); + cumEffects(slave); + } + if (slave.genes === "XX" && slave.prostate > 0 && slave.balls === 0) { + girlCumStatistics(slave); + harvestGirlCum(slave); + } + } + mentalEffects(slave); + if (V.showVignettes === 1 && (slave.assignment === "get milked" || slave.assignment === "work in the dairy")) { + assignmentVignette(slave); + } + if (slave.assignment === "work in the dairy") { + applyFSDecoration(); + } + + // These are a pain. They are usually called immediately after this function. Could possibly return an object instead. + V.cum = cum; + V.milk = milk; + V.milkSale = milkSale; + V.cumSale = cumSale; + V.fluid = fluid; + V.fluidSale = fluidSale; + + return r; + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function gatherStatistics(slave) { + /* Statistics gathering */ + let facility; + if (slave.assignment === Job.DAIRY) { + facility = V.facility.dairy; + } + T.incomeStats = getSlaveStatisticData(slave, facility); + T.incomeStats.milk = 0; + T.incomeStats.cum = 0; + T.incomeStats.fluid = 0; + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function jobPreface(slave) { + r += `gets milked this week.`; + if (V.dairy > 0 && V.dairyRestraintsSetting < 2) { + if ((V.universalRulesFacilityWork === 1 && V.slave.assignment === "get milked" && V.dairySpots > 0) || (slave.assignment === "work in the dairy")) { + if (slave.assignment === "get milked") { + r += ` Since there's extra space in ${V.dairyName}, ${he} spends most of ${his} milkings there.`; + V.dairySpots -= 1; // Would this need to be pulled for statistics gathering? + } + if (V.Milkmaid !== 0) { + r += ` While there, ${he} gets the benefit of ${V.Milkmaid.slaveName}'s `; + if (V.Milkmaid.physicalAge < 21) { + r += `youthful energy`; + } else { + r += `care`; + } + if (V.Milkmaid.skill.oral >= 100) { + r += ` and talented tongue`; + } + r += `.`; + if (slave.devotion < V.milkmaidDevotionThreshold) { + slave.devotion += V.milkmaidDevotionBonus; + } + if (slave.trust < V.milkmaidTrustThreshold) { + slave.trust += V.milkmaidTrustBonus; + } + if (slave.health < 100) { + slave.health += V.milkmaidHealthBonus; + } + } + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function harvestMilk(slave) { + /* milk = milkAmount(slave); // Set it or else! */ + + r += ` ${He} produces from ${his} ${jsEither(["boobs", "breasts", "mammaries", "tits", "udders"])}, which have a combined volume of ${(slave.boobs * 2)} CCs; `; + if (slave.lactation === 1) { + r += `${he} is lactating naturally and produces `; + if (implantEffect >= .90) { + r += `a weak trickle of milk.`; + } else if (implantEffect >= .75) { + r += `a weak stream of milk.`; + } else { + r += `a healthy stream of milk.`; + } + } else if (slave.lactation === 2) { + r += `${he} is on lactation drugs and produces `; + if (implantEffect >= .90) { + r += `a steady flow of milk.`; + } else if (implantEffect >= .75) { + r += `strong bursts of milk.`; + } else { + r += `a river of milk.`; + } + if (slave.lactationAdaptation < 100) { + r += ` ${His} udders are forced to adapt to this unnatural productivity.`; + slave.lactationAdaptation += 1; + } + if (slave.curatives === 0 && slave.inflationType !== "curative") { + r += ` The stress of extreme milk production <span class="red">damages ${his} health.</span>`; + slave.health -= 3; + } + } + + if (slave.boobsMilk > 0) { + r += ` ${He} was in need of a good milking, too.`; + } + + if (slave.devotion > 50) { + r += ` ${He}'s such a happy cow that ${his} mental state has a positive impact on ${his} production.`; + } else if (slave.devotion < -50) { + r += ` ${He}'s such an unhappy cow that ${his} mental state has a negative impact on ${his} production.`; + } + + if (slave.boobsImplant > 0) { + implantEffect = (slave.boobsImplant / slave.boobs); + } + if (slave.boobsImplant > 0) { + r += ` However, ${his} `; + if (implantEffect >= .90) { + r += `breast implants are ill-suited for`; + } else if (implantEffect >= .75) { + r += `breasts are almost entirely implant, greatly restricting ${his}`; + } else if (implantEffect >= .60) { + r += `breasts are mostly implant, restricting ${his}`; + } else if (implantEffect >= .45) { + r += `implants make up a considerable amount of ${his} breasts and greatly impede`; + } else if (implantEffect >= .30) { + r += `breast implants take up enough space to impede`; + } else if (implantEffect >= .10) { + r += `breast implants slightly impede`; + } else { + r += `breast implants cause a minor decrease in`; + } + r += ` milk production`; + if (implantEffect >= .90) { + r += `, given the lack of actual breast flesh`; + } + r += `.`; + } + + hormones = (slave.hormoneBalance / 100); + if (slave.balls !== 0) { + hormones -= 1; + } + if (slave.ovaries !== 0 || slave.mpreg !== 0) { + hormones += 1; + } + if (hormones > 1) { + r += ` ${His} internal chemistry is perfectly suited to milk production.`; + } else if (hormones > 0) { + r += ` ${His} hormonal balance favors milk production.`; + } else if (hormones < 0) { + r += ` ${His} hormonal balance impedes milk production.`; + } else if (hormones < -1) { + r += ` ${His} internal chemistry is poorly suited to milk production.`; + } + + if (slave.lactationAdaptation < 100) { + if (slave.assignment === "get milked" || slave.assignment === "work in the dairy") { + r += ` Living as a cow helps ${his} body and mind adapt to producing milk.`; + slave.lactationAdaptation += 1; + } + } + + if (slave.preg > (slave.pregData.normalBirth / 8) && slave.pregKnown === 1) { + r += ` ${His} pregnancy helps ${his} body produce more milk naturally`; + if (slave.lactationAdaptation < 100) { + r += `, and also helps it adapt to milk production`; + slave.lactationAdaptation += 1; + } + r += `.`; + } + + if (slave.health > 50) { + r += ` ${His} shining health helps ${him} really produce.`; + } else if (slave.health < -50) { + r += ` ${His} poor health impedes milk production.`; + } + + if (slave.weight > 10) { + r += ` ${His} extra weight supports ${his} productivity.`; + } else if (slave.weight < -10) { + r += ` ${His} thinness hinders ${his} productivity.`; + } + + if (slave.lactationAdaptation > 10) { + if (slave.lactationAdaptation > 50) { + r += ` ${His} body has adapted heavily to milk production, making ${him} extremely productive.`; + } else { + r += ` ${His} body has gotten used to producing milk, making ${him} very productive.`; + } + } + + if (V.dairySlimMaintainUpgrade === 1) { + if (V.dairySlimMaintain === 1) { + if (slave.boobs <= 700) { + if (arcology.FSSlimnessEnthusiast > 80) { + r += ` Your arcology's milkers are optimized to extract maximum output from small breasted slaves, which substantially increases ${his} otherwise modest productivity.`; + } else if (arcology.FSSlimnessEnthusiast > 20) { + r += ` Your arcology's milkers have been carefully modified to more readily accommodate slaves with tiny breasts, which slightly mitigates ${his} less than ideal physiology for milk production.`; + } + } + } + } + + r += ` As a result, $he produces ${milk} liters of milk over the week.`; + + /* + slaves.counter.milk += milk; + V.milkTotal += milk; + T.incomeStats.milk = milk; + */ + + // make sure milkSale is set here + if (arcology.FSPastoralistLaw === 1) { + r += ` Since breast milk is ${arcology.name}'s only legal dairy product, ${he} can scarcely be milked fast enough, and ${he} makes <span class="yellowgreen">${cashFormat(milkSale)}.</span>`; + } else if (arcology.FSPastoralist !== "unset") { + r += ` Since milk is fast becoming a major part of the ${arcology.name}'s dietary culture, ${his} milk is in demand, and ${he} makes <span class="yellowgreen">${cashFormat(milkSale)}.</span>`; + } else if (arcology.FSRepopulationFocusLaw === 1) { + r += ` Since the number of hungry babies outweighs the supply of available breasts in ${arcology.name}, ${his} milk is in demand, and ${he} makes <span class="yellowgreen">${cashFormat(milkSale)}.</span>`; + } else { + r += ` ${His} milk is sold for <span class="yellowgreen">${cashFormat(milkSale)}.</span>`; + } + + /* + if (slave.assignment === "work in the dairy") { + cashX(milkSale, "milkedDairy", slave); + } else if (slave.assignment == "get milked") { + cashX(milkSale, "milked", slave); + } else { + cashX(milkSale, "extraMilk", slave); + } + T.incomeStats.income += milkSale; + */ + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function milkStatistics(slave) { + milk = milkAmount(slave); + + if (V.dairySlimMaintainUpgrade === 1) { + if (V.dairySlimMaintain === 1) { + if (slave.boobs <= 700) { + if (arcology.FSSlimnessEnthusiast > 80) { + milk *= 1.5; + } else if (arcology.FSSlimnessEnthusiast > 20) { + milk *= 1.1; + } + } + } + } + + if (slave.assignment === "work in the dairy") { + if (V.dairyFeedersUpgrade === 1) { + if (V.dairyFeedersSetting > 0) { + milk += (milk * (0.1 * (V.dairyFeedersUpgrade + V.dairyRestraintsSetting + ((50 - slave.physicalAge) / 20)))); + if (slave.chem > 360) { + milk *= 0.6; + } else if (slave.chem > 100) { + milk *= ((600 - slave.chem) / 600); + } + } + } + } else if (slave.assignment === "be confined in the arcade") { + milk *= 0.5; + } + + milk *= V.servantMilkersMultiplier; + milk = Math.trunc(milk); + if (milk < 1) { + milk = 1; + } + + // Consider returning these if this function gets gutted + slave.counter.milk += milk; + V.milkTotal += milk; + T.incomeStats.milk = milk; + + if (arcology.FSPastoralistLaw === 1) { + milkSale = (milk * (8 + Math.trunc(arcology.FSPastoralist / 30))); + } else if (arcology.FSPastoralist !== "unset") { + milkSale = (milk * (6 + Math.trunc(arcology.FSPastoralist / 30))); + } else if (arcology.FSRepopulationFocusLaw === 1) { + milkSale = (milk * (6 + Math.trunc(arcology.FSRepopulationFocus / 50))); + } else { + milkSale = (milk * 6); + } + + // Consider returning these if this function gets gutted + if (slave.assignment === "work in the dairy") { + cashX(milkSale, "milkedDairy", slave); + } else if (slave.assignment === "get milked") { + cashX(milkSale, "milked", slave); + } else { + cashX(milkSale, "extraMilk", slave); + } + T.incomeStats.income += milkSale; + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function milkingEffects(slave) { + if (slave.fetishKnown) { + if (slave.fetish === "boobs" || slave.energy > 95) { + r += ` Getting constantly milked is as good as sex, as far as ${he}'s concerned. <span class="hotpink">$He is happy</span> to have ${his} breasts receive so much attention.`; + slave.devotion += 1; + if (slave.need > 0) { + slave.need = 0; + } + } + } + + if (slave.career === "a dairy cow" && slave.fetish !== "mindbroken" && slave.fuckdoll === 0) { + r += ` ${He} feels like <span class="hotpink">${he} was made to be milked,</span> <span class="mediumaquamarine">not that ${he}'d complain about such a good feeling.</span>`; + slave.devotion++; + slave.trust++; + if (slave.need > 0) { + slave.need = 0; + } + } + + if (slave.nipples !== "huge") { + if (slave.nipples === "inverted") { + if (slave.fetish === "masochist" && slave.fetishKnown === 1) { + r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="hotpink">extremely uncomfortable; ${he} loves it.</span>`; + slave.devotion += 3; + } else { + r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="mediumorchid">extremely uncomfortable.</span>`; + slave.devotion -= 3; + } + if (jsRandom(1, 100) > 50) { + r += ` The constant suction <span class="lime">permanently protrudes them,</span> and `; + if (jsRandom(1, 2) === 1) { + r += `it turns out they're absolutely massive.`; + slave.nipples = "huge"; + } else { + r += `it turns out they're nice and puffy.`; + slave.nipples = "puffy"; + } + } + } else if (slave.nipples === "partially inverted") { + if (slave.fetish === "masochist" && slave.fetishKnown === 1) { + r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="hotpink">quite uncomfortable; ${he} loves it.</span>`; + slave.devotion += 1; + } else { + r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="mediumorchid">quite uncomfortable.</span>`; + slave.devotion -= 1; + } + if (jsRandom(1, 100) > 30) { + r += ` The constant suction <span class="lime">permanently protrudes them,</span> and `; + if (jsRandom(1, 2) === 1) { + r += `it turns out they're pretty cute.`; + slave.nipples = "cute"; + } else { + r += `it turns out they're nice and puffy.`; + slave.nipples = "puffy"; + } + } + } else if (slave.nipples === "puffy" && jsRandom(1, 100) > 90) { + r += ` Producing this river of milk <span class="lime">enlarges ${his} nipples:</span> they're now enormous.`; + slave.nipples = "huge"; + } else if (slave.nipples === "cute" && jsRandom(1, 100) > 80) { + r += ` Producing this river of milk <span class="lime">makes ${his} nipples nice and puffy.</span>`; + slave.nipples = "puffy"; + } else if (slave.nipples === "tiny") { + r += ` Producing this river of milk <span class="lime">makes ${his} nipples grow to a nice size.</span>`; + slave.nipples = "cute"; + } else if (slave.areolae < 4 && jsRandom(1, 100) > (30 + (slave.areolae * 20))) { + if (slave.nipples === "fuckable") { + r += ` The constant suction around of $his nipples as their depths are drained of milk`; + } else { + r += ` Producing this river of milk`; + } + r += ` <span class="lime">broadens ${his} areolae.</span>`; + slave.areolae += 1; + } + } + slave.lactationDuration = 2; + if (slave.boobsMilk > 0) { + slave.boobs -= slave.boobsMilk; + slave.boobsMilk = 0; + } + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function harvestCum(slave) { + V.cumSlaves += 1; + /* cum = cumAmount(slave); // Set it or else */ + + if (slave.lactation > 0) { + r += ` ${His} `; + } else { + r += ` ${slave.slaveName}'s `; + } + + if (slave.dick > 0) { + if (slave.dick > 6) { + r += `inhuman`; + } else if (slave.dick > 5) { + r += `massive`; + } else if (slave.dick > 4) { + r += `big`; + } else if (slave.dick > 3) { + r += `sizable`; + } else if (slave.dick > 2) { + r += `moderate`; + } else if (slave.dick > 1) { + r += `little`; + } else { + r += `tiny`; + } + r += ` prick is`; + if (slave.lactation > 0) { + r += ` also`; + } + r += ` machine-milked`; + } else { + r += `butt is machine-fucked`; + } + r += ` to extract the cum from $his `; + if (slave.scrotum === 0) { + r += `invisible`; + } else { + if (slave.balls > 10) { + r += `hypertrophied`; + } else if (slave.balls >= 10) { + r += `inhuman`; + } else if (slave.balls >= 9) { + r += `titanic`; + } else if (slave.balls >= 8) { + r += `gigantic`; + } else if (slave.balls >= 7) { + r += `monstrous`; + } else if (slave.balls >= 6) { + r += `pendulous`; + } else if (slave.balls >= 5) { + r += `huge`; + } else if (slave.balls >= 4) { + r += `swinging`; + } else if (slave.balls >= 4) { + r += `big`; + } else if (slave.balls >= 3) { + r += `average`; + } else { + r += `pathetic`; + } + } + if (slave.drugs === "testicle enhancement") { + r += ` balls, relieving them of the excessive cum production caused by the testicle enhancement drugs.`; + } else if (slave.drugs === "hyper testicle enhancement") { + r += ` balls, relieving them of the excessive cum production caused by the hyper testicle enhancement drugs.`; + } else { + r += ` balls.`; + } + + if (slave.diet === "cum production") { + r += ` ${His} diet is designed for cum production.`; + } + + cumHormones = (slave.hormoneBalance / 50); + if (cumHormones < -1) { + r += ` ${His} internal chemistry is perfectly suited to cum production.`; + } else if (cumHormones < 0) { + r += ` ${His} hormonal balance favors cum production.`; + } else if (cumHormones > 0) { + r += ` ${His} hormonal balance impedes cum production.`; + } else if (cumHormones > 1) { + r += ` ${His} internal chemistry is poorly suited to cum production.`; + } + + if (slave.scrotum === 0) { + r += ` ${He} does produce cum despite ${his} apparent ballslessness, but less than ${he} would if they weren't hidden inside ${him}.`; + } + + if (slave.prostate > 0) { + if (slave.prostate > 2) { + r += ` ${His} heavily altered prostate greatly increases the volume of ${his} ejaculations and promotes excessive, watery semen production. This dilute ejaculate<span class="red">sells poorly</span> compared to normal cum.`; + } else if (slave.prostate > 1) { + r += ` ${His} hyperactive prostate increases the volume of ${his} ejaculations and promotes good semen production.`; + } + } else { + r += ` ${His} lack of a prostate reduces the health and volume of ${his} ejaculations.`; + } + + if (slave.devotion > 50) { + r += ` ${He}'s so happy that ${his} mental state has a positive impact on ${his} semen production.`; + } else if (slave.devotion < -50) { + r += ` ${He}'s so unhappy that ${his} mental state has a negative impact on ${his} semen production.`; + } + + if (slave.health > 50) { + r += ` ${His} shining health helps ${him} really produce.`; + } else if (slave.health < -50) { + r += ` ${His} poor health impedes semen production.`; + } + + if (slave.vasectomy === 1) { + r += ` ${His} cum lacks the primary ingredient, sperm, thanks to ${his} vasectomy, <span class="red">considerably lowering the value</span> of ${his} ejaculate.`; + } else if (slave.ballType === "sterile") { + r += ` ${His} cum lacks vigor entirely, thanks to ${his} chemical castration, <span class="red">considerably lowering the value</span> of ${his} ejaculate.`; + } + + /* Dairy rework cum half here */ + if (slave.assignment === "work in the dairy") { + if (V.dairyStimulatorsUpgrade !== 1) { + if (V.Milkmaid !== 0) { + if (V.Milkmaid.dick > 4 && canAchieveErection(V.Milkmaid)) { + const milkmaidPronouns = getPronouns(V.Milkmaid); + r += ` ${V.Milkmaid.slaveName} sometimes stands in for the machines, which is a polite way of saying ${milkmaidPronouns.he} sometimes fucks ${slave.slaveName}'s ass to help ${him} cum.`; + } + } + } + } + + /* + slave.counter.cum += cum; + V.cumTotal += cum; + T.incomeStats.cum = cum; + */ + + if (arcology.FSPastoralist === "unset") { + r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate is sold for <span class="yellowgreen">${cashFormat(cumSale)}.</span>`; + } else if (arcology.FSPastoralistLaw === 1) { + r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate, which is in extremely high demand as one of ${arcology.name}'s few legal sources of animal protein, is sold for <span class="yellowgreen">${cashFormat(cumSale)}.</span>`; + } else { + r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate, which is in high demand given the new cultural preference for slave products, is sold for <span class="yellowgreen">${cashFormat(cumSale)}.</span>`; + } + + /* + if (slave.assignment === "work in the dairy") { + cashX(cumSale, "milkedDairy", slave); + } else if (slave.assignment === "get milked") { + cashX(cumSale, "milked", slave); + } else { + cashX(cumSale, "extraMilk", slave); + } + T.incomeStats.income += cumSale; + */ + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function cumStatistics(slave) { + cum = cumAmount(slave); + + /* Dairy rework cum half here */ + if (slave.assignment === "work in the dairy") { + if (V.dairyStimulatorsUpgrade === 1) { + if (V.dairyStimulatorsSetting > 0) { + cum += (cum * (0.2 * (V.dairyStimulatorsSetting + V.dairyRestraintsSetting + Math.trunc((50 - slave.physicalAge) / 20)))); + } + if (slave.chem > 360) { + cum *= 0.6; + } else if (slave.chem > 100) { + cum *= ((600 - slave.chem) / 600); + } + } else if (V.Milkmaid !== 0) { + if (V.Milkmaid.dick > 4 && canAchieveErection(V.Milkmaid)) { + cum *= 1.2; + } + } + } else if (slave.assignment === "be confined in the arcade") { + cum *= 0.5; + } + + cum = Math.trunc(cum); + if (cum < 1) { + cum = 1; + } + + // Consider returning these if this function gets gutted + slave.counter.cum += cum; + V.cumTotal += cum; + T.incomeStats.cum = cum; + + if (arcology.FSPastoralist === "unset") { + cumSale = (cum * jsRandom(15, 25)); + } else if (arcology.FSPastoralistLaw === 1) { + cumSale = (cum * (jsRandom(20, 40))); + } else { + cumSale = (cum * (jsRandom(10, 20) + Math.trunc(arcology.FSPastoralist / 10))); + } + if (slave.vasectomy === 1 || slave.ballType === "sterile") { + cumSale *= 0.2; + } + if (slave.prostate === 3) { + cumSale *= 0.5; + } + + // Consider returning these if this function gets gutted + if (slave.assignment === "work in the dairy") { + cashX(cumSale, "milkedDairy", slave); + } else if (slave.assignment === "get milked") { + cashX(cumSale, "milked", slave); + } else { + cashX(cumSale, "extraMilk", slave); + } + T.incomeStats.income += cumSale; + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function cumEffects(slave) { + if (slave.energy > 95) { + r += ` Getting ${his} dick constantly milked is almost as good as getting constant blowjobs as far as ${he}'s concerned. <span class="hotpink">${He} is happy</span> to have ${his} member receive so much attention.`; + slave.devotion += 1; + } + + if (slave.need > 0) { + r += ` ${His} cock and balls are milked so thoroughly that ${he}'s involuntarily sexually sated, regardless of ${his} feelings and tastes.`; + slave.need = 0; + } + + if (!canAchieveErection(slave)) { + r += ` Since ${he} cannot maintain an erection, ${he} requires <span class="gold">painful</span> and <span class="mediumorchid">degrading</span> anal electrostimulation to produce.`; + slave.devotion -= 2; + slave.trust -= 2; + if (slave.anus === 0) { + r += ` The electrostimulator <span class="lime">breaks in ${his} virgin asshole.</span>`; + slave.anus = 1; + } + } else if (slave.devotion <= 20) { + r += ` Since ${he}'s unaroused by ${his} situation, ${he} requires <span class="gold">painful</span> and <span class="mediumorchid">degrading</span> anal electrostimulation to produce.`; + slave.devotion -= 2; + slave.trust -= 2; + if (slave.anus === 0) { + r += ` The electrostimulator <span class="lime">breaks in ${his} virgin asshole.</span>`; + slave.anus = 1; + } + } + + if (slave.balls < 3 && slave.ballType !== "sterile") { + if (slave.balls < 2) { + if (jsRandom(1, 100) > (70 + (slave.geneMods.NCS * 15))) { + r += ` Constant semen production and continual emptying and refilling <span class="lime">increases the size of ${his} tiny testicles.</span>`; + slave.balls += 1; + } + } else if (jsRandom(1, 100) > (90 + (slave.geneMods.NCS * 5))) { + r += ` Constant semen production and continual emptying and refilling <span class="lime">increases the size of ${his} small testicles.</span>`; + slave.balls += 1; + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function harvestGirlCum(slave) { + /* fluid = ((slave.prostate * (slave.energy / 5)) + 1); // Set it or else! */ + r += ` ${His} female prostate fluid is considered an exotic delicacy.`; + if (slave.vagina >= 0) { + if (slave.vaginaLube === 2) { + r += ` ${His} excessive vaginal secretions bolster the mix.`; + } else if (slave.vaginaLube === 1) { + r += ` ${His} natural vaginal secretions add to the mix.`; + } + } + if (slave.energy > 10) { + if (slave.health > 50) { + if (slave.energy > 90) { + r += ` As a nympho, ${he} has no trouble orgasming almost constantly.`; + } + r += ` ${His} shining health keeps ${his} juices flowing.`; + } else if (slave.health < -50) { + r += ` ${He} is so unwell, ${he} produces less than normal.`; + } + } else { + /* slave.energy <= 10 */ + r += ` Unfortunately, ${he} is frigid and rarely reaches orgasm in spite of the intense automatic stimulation.`; + } + + /* + T.incomeStats.fluid = fluid; + */ + + // make sure fluidSale is set here + r += ` ${fluid} deciliters of uncommon ejaculate is gathered during ${his} milkings.`; + if (arcology.FSPastoralist !== "unset" && arcology.FSPastoralist > 30) { + r += ` Because of your arcology's cultural preferences, it comes with extra value.`; + } + r += ` It is sold for <span class="yellowgreen">${cashFormat(fluidSale)}.</span>`; + + /* + if (slave.assignment === "work in the dairy") { + cashX(fluidSale, "milkedDairy", slave); + } else if (slave.assignment === "get milked") { + cashX(fluidSale, "milked", slave); + } else { + cashX(fluidSale, "extraMilk", slave); + } + T.incomeStats.income += fluidSale; + */ + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function girlCumStatistics(slave) { + fluid = ((slave.prostate * (slave.energy / 5)) + 1); + if (slave.vagina >= 0) { + if (slave.vaginaLube === 2) { + fluid *= 1.3; + } else if (slave.vaginaLube === 1) { + fluid *= 1.1; + } + } + if (slave.energy > 10) { + if (slave.health > 50) { + fluid *= (slave.health / 50); + } else if (slave.health < -50) { + fluid *= (1 + (slave.health / 50)); + } + } + fluid = Math.trunc(fluid); + if (fluid < 1) { + fluid = 1; + } + + // Consider returning these if this function gets gutted + T.incomeStats.fluid = fluid; + + fluidSale = (fluid * jsRandom(40, 50)); + if (arcology.FSPastoralist !== "unset" && arcology.FSPastoralist > 30) { + fluidSale = (Math.trunc(fluidSale*(1 + (arcology.FSPastoralist - 30) / 140))); /* fully accepted pastoralism gives +50% on the price*/ + } + + // Consider returning these if this function gets gutted + if (slave.assignment === "work in the dairy") { + cashX(fluidSale, "milkedDairy", slave); + } else if (slave.assignment === "get milked") { + cashX(fluidSale, "milked", slave); + } else { + cashX(fluidSale, "extraMilk", slave); + } + T.incomeStats.income += fluidSale; + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function mentalEffects(slave) { + if (slave.assignment === "get milked" || (slave.assignment === "work in the dairy" && V.dairyRestraintsSetting < 2)) { + if (slave.behavioralQuirk === "fitness") { + r += ` ${slave.slaveName} <span class="hotpink">privately enjoys</span> the focus on ${his} health and fitness that comes with being a cow.`; + slave.devotion += 1; + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * */ + function assignmentVignette(slave) { + const vignette = GetVignette(slave); + const FuckResult = FResult(slave); // Got to be something better than this + r += ` __This week__ ${vignette.text} `; + if (vignette.type === "cash") { + const cashVign = Math.trunc(FuckResult * vignette.effect); + if (vignette.effect > 0) { + r += `<span class="yellowgreen">making you an extra ${cashFormat(cashVign)}.</span>`; + } else if (vignette.effect < 0) { + r += `<span class="red">losing you ${cashFormat(Math.abs(cashVign))}.</span>`; + } else { + r += `an incident without lasting effect.`; + } + if (slave.assignment === "work in the dairy") { + cashX(cashVign, "milkedDairy", slave); + } else if (slave.assignment === "get milked") { + cashX(cashVign, "milked", slave); + } else { + cashX(cashVign, "extraMilk", slave); + } + T.incomeStats.income += cashVign; + } else if (vignette.type === "devotion") { + if (vignette.effect > 0) { + if (slave.devotion > 50) { + r += `<span class="hotpink">increasing ${his} devotion to you.</span>`; + } else if (slave.devotion >= -20) { + r += `<span class="hotpink">increasing ${his} acceptance of you.</span>`; + } else if (slave.devotion >= -50) { + r += `<span class="hotpink">reducing ${his} dislike of you.</span>`; + } else { + r += `<span class="hotpink">reducing ${his} hatred of you.</span>`; + } + } else if (vignette.effect < 0) { + if (slave.devotion > 50) { + r += `<span class="mediumorchid">reducing ${his} devotion to you.</span>`; + } else if (slave.devotion >= -20) { + r += `<span class="mediumorchid">reducing ${his} acceptance of you.</span>`; + } else if (slave.devotion >= -50) { + r += `<span class="mediumorchid">increasing ${his} dislike of you.</span>`; + } else { + r += `<span class="mediumorchid">increasing ${his} hatred of you.</span>`; + } + } else { + r += `an incident without lasting effect.`; + } + slave.devotion += (1 * vignette.effect); + } else if (vignette.type === "trust") { + if (vignette.effect > 0) { + if (slave.trust > 20) { + r += `<span class="mediumaquamarine">increasing ${his} trust in you.</span>`; + } else if (slave.trust >= -50) { + r += `<span class="mediumaquamarine">reducing ${his} fear of you.</span>`; + } else { + r += `<span class="mediumaquamarine">reducing ${his} terror of you.</span>`; + } + } else if (vignette.effect < 0) { + if (slave.trust > 20) { + r += `<span class="gold">reducing ${his} trust in you.</span>`; + } else if (slave.trust >= -20) { + r += `<span class="gold">increasing ${his} fear of you.</span>`; + } else { + r += `<span class="gold">increasing ${his} terror of you.</span>`; + } + } else { + r += `an incident without lasting effect.`; + } + slave.trust += (1 * vignette.effect); + } else if (vignette.type === "health") { + if (vignette.effect > 0) { + r += `<span class="green">improving ${his} health.</span>`; + } else if (vignette.effect < 0) { + r += `<span class="red">affecting ${his} health.</span>`; + } else { + r += `an incident without lasting effect.`; + } + slave.health += (2 * vignette.effect); + } else { + if (vignette.effect > 0) { + r += `<span class="green">gaining you a bit of reputation.</span>`; + } else if (vignette.effect < 0) { + r += `<span class="red">losing you a bit of reputation.</span>`; + } else { + r += `an incident without lasting effect.`; + } + repX(Math.trunc(FuckResult * vignette.effect * 0.1), "vignette", slave); + T.incomeStats.rep += Math.trunc(FuckResult * vignette.effect * 0.1); + } + } + + // FACILITY DECORATION IMPACTS + function applyFSDecoration() { + if (V.dairyDecoration !== "standard") { + let fsGain = Math.min(0.0001 * V.FSSingleSlaveRep * (milk + (5 * cum)), 1); + switch (V.dairyDecoration) { + case "Roman Revivalist": + arcology.FSRomanRevivalist = Math.clamp(arcology.FSRomanRevivalist += fsGain, 0, 100); + break; + case "Aztec Revivalist": + arcology.FSAztecRevivalist = Math.clamp(arcology.FSAztecRevivalist += fsGain, 0, 100); + break; + case "Egyptian Revivalist": + arcology.FSEgyptianRevivalist = Math.clamp(arcology.FSEgyptianRevivalist += fsGain, 0, 100); + break; + case "Edo Revivalist": + arcology.FSEdoRevivalist = Math.clamp(arcology.FSEdoRevivalist += fsGain, 0, 100); + break; + case "Arabian Revivalist": + arcology.FSArabianRevivalist = Math.clamp(arcology.FSArabianRevivalist += fsGain, 0, 100); + break; + case "Chinese Revivalist": + arcology.FSChineseRevivalist = Math.clamp(arcology.FSChineseRevivalist += fsGain, 0, 100); + break; + case "Chattel Religionist": + arcology.FSChattelReligionist = Math.clamp(arcology.FSChattelReligionist += fsGain, 0, 100); + break; + case "Degradationist": + arcology.FSDegradationist = Math.clamp(arcology.FSDegradationist += fsGain, 0, 100); + break; + case "Repopulation Focus": + arcology.FSRepopulationFocus = Math.clamp(arcology.FSRepopulationFocus += fsGain, 0, 100); + break; + case "Eugenics": + arcology.FSRestart = Math.clamp(arcology.FSRestart += fsGain, 0, 100); + break; + case "Asset Expansionist": + arcology.FSAssetExpansionist = Math.clamp(arcology.FSAssetExpansionist += fsGain, 0, 100); + break; + case "Transformation Fetishist": + arcology.FSTransformationFetishist = Math.clamp(arcology.FSTransformationFetishist += fsGain, 0, 100); + break; + case "Gender Radicalist": + arcology.FSGenderRadicalist = Math.clamp(arcology.FSGenderRadicalist += fsGain, 0, 100); + break; + case "Gender Fundamentalist": + arcology.FSGenderFundamentalist = Math.clamp(arcology.FSGenderFundamentalist += fsGain, 0, 100); + break; + case "Physical Idealist": + arcology.FSPhysicalIdealist = Math.clamp(arcology.FSPhysicalIdealist += fsGain, 0, 100); + break; + case "Hedonistic": + arcology.FSHedonisticDecadence = Math.clamp(arcology.FSHedonisticDecadence += fsGain, 0, 100); + break; + case "Supremacist": + arcology.FSSupremacist = Math.clamp(arcology.FSSupremacist += fsGain, 0, 100); + break; + case "Subjugationist": + arcology.FSSubjugationist = Math.clamp(arcology.FSSubjugationist += fsGain, 0, 100); + break; + case "Paternalist": + arcology.FSPaternalist = Math.clamp(arcology.FSPaternalist += fsGain, 0, 100); + break; + case "Pastoralist": + arcology.FSPastoralist = Math.clamp(arcology.FSPastoralist += fsGain, 0, 100); + break; + case "Maturity Preferentialist": + arcology.FSMaturityPreferentialist = Math.clamp(arcology.FSMaturityPreferentialist += fsGain, 0, 100); + break; + case "Youth Preferentialist": + arcology.FSYouthPreferentialist = Math.clamp(arcology.FSYouthPreferentialist += fsGain, 0, 100); + break; + case "Body Purist": + arcology.FSBodyPurist = Math.clamp(arcology.FSBodyPurist += fsGain, 0, 100); + break; + case "Slimness Enthusiast": + arcology.FSSlimnessEnthusiast = Math.clamp(arcology.FSSlimnessEnthusiast += fsGain, 0, 100); + break; + case "Slave Professionalism": + arcology.FSSlaveProfessionalism = Math.clamp(arcology.FSSlaveProfessionalism += fsGain, 0, 100); + break; + case "Intellectual Dependency": + arcology.FSIntellectualDependency = Math.clamp(arcology.FSIntellectualDependency += fsGain, 0, 100); + break; + case "Petite Admiration": + arcology.FSPetiteAdmiration = Math.clamp(arcology.FSPetiteAdmiration += fsGain, 0, 100); + break; + case "Statuesque Glorification": + arcology.FSStatuesqueGlorification = Math.clamp(arcology.FSStatuesqueGlorification += fsGain, 0, 100); + break; + } + } + } +})(); diff --git a/src/npc/descriptions/boobs/boobs.js b/src/npc/descriptions/boobs/boobs.js index 13335d64dcd..f0e3d2c8375 100644 --- a/src/npc/descriptions/boobs/boobs.js +++ b/src/npc/descriptions/boobs/boobs.js @@ -1566,7 +1566,7 @@ App.Desc.nipples = function(slave, pronouns) { r += `huge ${nipColor} nipples fill the milkers completely.`; break; case "fuckable": - r += `fuckable ${nipColor} nipples leave nothing for the milkers, and the suction is drawing a lot of boob in with them.`; + r += `fuckable ${nipColor} nipples are filled by special milkers that extend into ${his} breasts.`; break; default: r += `${nipColor} nipples are being tugged at by the milkers' powerful suction.`; diff --git a/src/uncategorized/arcadeReport.tw b/src/uncategorized/arcadeReport.tw index a5968a8e7a1..ce7c8ad38fc 100644 --- a/src/uncategorized/arcadeReport.tw +++ b/src/uncategorized/arcadeReport.tw @@ -98,9 +98,9 @@ <<elseif ($slaves[$i].lactation > 0) || ($slaves[$i].balls > 0)>> <<set _oldCash = $cash>> <<if $showEWD != 0>> - <br> $He <<include "SA get milked">> + <br> $He <<= saGetMilked($slaves[$i])>> <<else>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <</if>> <<set _milkprofits += $cash-_oldCash>> <<set _growth = 0>> diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw index bd4e3d9f469..dd82da89af0 100644 --- a/src/uncategorized/dairyReport.tw +++ b/src/uncategorized/dairyReport.tw @@ -396,7 +396,7 @@ <<else>> is serving as a cow in $dairyName. <</if>> - <br> $He <<include "SA get milked">> + <br> $He <<= saGetMilked($slaves[$i])>> <br> <<include "SA rules">> <<include "SA diet">> @@ -408,7 +408,7 @@ <<else>> <<silently>> <<include "SA chooses own job">> - <<include "SA get milked">> + <<run saGetMilked($slaves[$i])>> <<include "SA rules">> <<include "SA diet">> <<include "SA long term effects">> diff --git a/src/uncategorized/fullReport.tw b/src/uncategorized/fullReport.tw index 70e785c7c39..3a7d29884a2 100644 --- a/src/uncategorized/fullReport.tw +++ b/src/uncategorized/fullReport.tw @@ -21,7 +21,7 @@ <<= saWorkAGloryHole($slaves[$i])>> <<case "get milked">> <<set $servantMilkersMultiplier = 1>> - <<include "SA get milked">> + <<= saGetMilked($slaves[$i])>> <<case "take classes">> <<= saTakeClasses($slaves[$i])>> <<case "please you">> @@ -52,7 +52,7 @@ keeps $him busy, but $he <<if $slaves[$i].devotion > 20>><<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses<<elseif $slaves[$i].devotion >= -20>>is required to use<<else>>is forced to use<</if>> the penthouse milkers whenever $he can, <<set $servantMilkersMultiplier = 0.25>> <</if>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> and $he gives $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <</if>> diff --git a/src/uncategorized/masterSuiteReport.tw b/src/uncategorized/masterSuiteReport.tw index efe2babd177..02824322bdb 100644 --- a/src/uncategorized/masterSuiteReport.tw +++ b/src/uncategorized/masterSuiteReport.tw @@ -370,7 +370,7 @@ <<if $servantMilkers == 1 && $slaves[$i].lactation > 0 && $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken" && canWalk($slaves[$i]) && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -90>> When $his breasts begin to feel full and you aren't around, $he avails $himself to the penthouse milkers and <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> gives $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <</if>> @@ -389,7 +389,7 @@ <<include "SA please you">> <<if $servantMilkers == 1 && $slaves[$i].lactation > 0 && $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken" && canWalk($slaves[$i]) && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -90>> <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> <</if>> <<set _chosenClothes = saChoosesOwnClothes($slaves[$i])>> diff --git a/src/uncategorized/saGetMilked.tw b/src/uncategorized/saGetMilked.tw deleted file mode 100644 index 1606670832d..00000000000 --- a/src/uncategorized/saGetMilked.tw +++ /dev/null @@ -1,683 +0,0 @@ -:: SA get milked [nobr] - -<!-- Statistics gathering --> -<<set _incomeStats = getSlaveStatisticData($slaves[$i], $slaves[$i].assignment === Job.DAIRY ? $facility.dairy : undefined)>> -<<set _incomeStats.milk = 0; _incomeStats.cum = 0; _incomeStats.fluid = 0>> - -<<if ndef $slaves[$i].lactationAdaptation>> - <<set $slaves[$i].lactationAdaptation = 0>> -<</if>> - -<<set $milk = 0, $cum = 0>> - -gets milked this week. -<<if $dairy > 0 && $dairyRestraintsSetting < 2>> - <<if (($universalRulesFacilityWork == 1) && ($slaves[$i].assignment == "get milked") && ($dairySpots > 0)) || ($slaves[$i].assignment == "work in the dairy")>> - <<if ($slaves[$i].assignment == "get milked")>> - Since there's extra space in $dairyName, $he spends most of $his milkings there. - <<set $dairySpots -= 1>> - <</if>> - <<if ($Milkmaid != 0)>> - While there, $he gets the benefit of $Milkmaid.slaveName's <<if ($Milkmaid.physicalAge < 21)>>youthful energy<<else>>care<</if>><<if ($Milkmaid.skill.oral >= 100)>> and talented tongue<</if>>. - <<if ($slaves[$i].devotion < $milkmaidDevotionThreshold)>> - <<set $slaves[$i].devotion += $milkmaidDevotionBonus>> - <</if>> - <<if ($slaves[$i].trust < $milkmaidTrustThreshold)>> - <<set $slaves[$i].trust += $milkmaidTrustBonus>> - <</if>> - <<if ($slaves[$i].health < 100)>> - <<set $slaves[$i].health += $milkmaidHealthBonus>> - <</if>> - <</if>> - <</if>> -<</if>> - -<<if $slaves[$i].lactation > 0>> - - <<set $milk = milkAmount($slaves[$i])>> - - $He produces from $his <<print either("boobs", "breasts", "mammaries", "tits", "udders")>>, which have a combined volume of <<print $slaves[$i].boobs*2>> CCs; - <<if ($slaves[$i].boobsImplant > 0)>> - <<set _implantEffect = $slaves[$i].boobsImplant/$slaves[$i].boobs>> - <</if>> - <<if ($slaves[$i].lactation == 1)>> - $he is lactating naturally and produces - <<if _implantEffect >= .90>> - a weak trickle of milk. - <<elseif _implantEffect >= .75>> - a weak stream of milk. - <<else>> - a healthy stream of milk. - <</if>> - <<elseif ($slaves[$i].lactation == 2)>> - $he is on lactation drugs and produces - <<if _implantEffect >= .90>> - a steady flow of milk. - <<elseif _implantEffect >= .75>> - strong bursts of milk. - <<else>> - a river of milk. - <</if>> - <<if $slaves[$i].lactationAdaptation < 100>> - $His udders are forced to adapt to this unnatural productivity. - <<set $slaves[$i].lactationAdaptation += 1>> - <</if>> - <<if $slaves[$i].curatives == 0 && $slaves[$i].inflationType != "curative">> - The stress of extreme milk production @@.red;damages $his health.@@ - <<set $slaves[$i].health -= 3>> - <</if>> - <</if>> - - <<if ($slaves[$i].boobsMilk > 0)>> - $He was in need of a good milking, too. - <</if>> - - <<if ($slaves[$i].devotion > 50)>> - $He's such a happy cow that $his mental state has a positive impact on $his production. - <<elseif ($slaves[$i].devotion < -50)>> - $He's such an unhappy cow that $his mental state has a negative impact on $his production. - <</if>> - - <<if ($slaves[$i].boobsImplant > 0)>> - However, $his - <<if _implantEffect >= .90>> - breast implants are ill-suited for - <<elseif _implantEffect >= .75>> - breasts are almost entirely implant, greatly restricting $his - <<elseif _implantEffect >= .60>> - breasts are mostly implant, restricting $his - <<elseif _implantEffect >= .45>> - implants make up a considerable amount of $his breasts and greatly impede - <<elseif _implantEffect >= .30>> - breast implants take up enough space to impede - <<elseif _implantEffect >= .10>> - breast implants slightly impede - <<else>> - breast implants cause a minor decrease in - <</if>> - milk production<<if _implantEffect >= .90>>, given the lack of actual breast flesh<</if>>. - <</if>> - - <<set $hormones = $slaves[$i].hormoneBalance/100>> - <<if ($slaves[$i].balls != 0)>> - <<set $hormones -= 1>> - <</if>> - <<if (($slaves[$i].ovaries != 0) || ($slaves[$i].mpreg != 0))>> - <<set $hormones += 1>> - <</if>> - <<if ($hormones > 1)>> - $His internal chemistry is perfectly suited to milk production. - <<elseif ($hormones > 0)>> - $His hormonal balance favors milk production. - <<elseif ($hormones < 0)>> - $His hormonal balance impedes milk production. - <<elseif ($hormones < -1)>> - $His internal chemistry is poorly suited to milk production. - <</if>> - - <<if $slaves[$i].lactationAdaptation < 100>> - <<if ($slaves[$i].assignment == "get milked") || ($slaves[$i].assignment == "work in the dairy")>> - Living as a cow helps $his body and mind adapt to producing milk. - <<set $slaves[$i].lactationAdaptation += 1>> - <</if>> - <</if>> - - <<if ($slaves[$i].preg > $slaves[$i].pregData.normalBirth/8) && ($slaves[$i].pregKnown == 1)>> - $His pregnancy helps $his body produce more milk naturally<<if $slaves[$i].lactationAdaptation < 100>>, and also helps it adapt to milk production<<set $slaves[$i].lactationAdaptation += 1>><</if>>. - <</if>> - - <<if ($slaves[$i].health > 50)>> - $His shining health helps $him really produce. - <<elseif ($slaves[$i].health < -50)>> - $His poor health impedes milk production. - <</if>> - - <<if ($slaves[$i].weight > 10)>> - $His extra weight supports $his productivity. - <<elseif ($slaves[$i].weight < -10)>> - $His thinness hinders $his productivity. - <</if>> - - <<if $slaves[$i].lactationAdaptation > 10>> - <<if $slaves[$i].lactationAdaptation > 50>> - $His body has adapted heavily to milk production, making $him extremely productive. - <<else>> - $His body has gotten used to producing milk, making $him very productive. - <</if>> - <</if>> - - <<if $dairySlimMaintainUpgrade == 1>> - <<if $dairySlimMaintain == 1>> - <<if ($slaves[$i].boobs <= 700)>> - <<if ($arcologies[0].FSSlimnessEnthusiast > 80)>> - Your arcology's milkers are optimized to extract maximum output from small breasted slaves, which substantially increases $his otherwise modest productivity. - <<set $milk *= 1.5>> - <<elseif ($arcologies[0].FSSlimnessEnthusiast > 20)>> - Your arcology's milkers have been carefully modified to more readily accommodate slaves with tiny breasts, which slightly mitigates $his less than ideal physiology for milk production. - <<set $milk *= 1.1>> - <</if>> - <</if>> - <</if>> - <</if>> - - /* This is going to be where the dairy overhaul takes place (milk half) */ - <<if ($slaves[$i].assignment == "work in the dairy")>> - <<if ($dairyFeedersUpgrade == 1)>> - <<if ($dairyFeedersSetting > 0)>> - <<set $milk += $milk*(0.1*($dairyFeedersUpgrade+$dairyRestraintsSetting+((50-$slaves[$i].physicalAge)/20)))>> - <<if ($slaves[$i].chem > 360)>> - <<set $milk *= 0.6>> - <<elseif ($slaves[$i].chem > 100)>> - <<set $milk *= ((600-$slaves[$i].chem)/600)>> - <</if>> - <</if>> - <</if>> - <<elseif ($slaves[$i].assignment == "be confined in the arcade")>> - <<set $milk *= 0.5>> - <</if>> - - <<set $milk *= $servantMilkersMultiplier>> - - <<set $milk = Math.trunc($milk)>> - <<if $milk < 1>> - <<set $milk = 1>> - <</if>> - <<set $slaves[$i].counter.milk += $milk>> - <<set $milkTotal += $milk>> - - As a result, $he produces $milk liters of milk over the week. - <<set _incomeStats.milk = $milk>> - - <<if ($arcologies[0].FSPastoralistLaw == 1)>> - <<set $milkSale = $milk*(8+Math.trunc($arcologies[0].FSPastoralist/30))>> - Since breast milk is $arcologies[0].name's only legal dairy product, $he can scarcely be milked fast enough, and $he makes @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ - <<elseif ($arcologies[0].FSPastoralist != "unset")>> - <<set $milkSale = $milk*(6+Math.trunc($arcologies[0].FSPastoralist/30))>> - Since milk is fast becoming a major part of the $arcologies[0].name's dietary culture, $his milk is in demand, and $he makes @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ - <<else>> - <<set $milkSale = $milk*6>> - $His milk is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ - <</if>> - <<if $slaves[$i].assignment == "work in the dairy">> - <<run cashX($milkSale, "milkedDairy", $slaves[$i])>> - <<elseif $slaves[$i].assignment == "get milked">> - <<run cashX($milkSale, "milked", $slaves[$i])>> - <<else>> - <<run cashX($milkSale, "extraMilk", $slaves[$i])>> - <</if>> - - <<set _incomeStats.income += $milkSale>> - - <<if $slaves[$i].fetishKnown>> - <<if ($slaves[$i].fetish == "boobs") || ($slaves[$i].energy > 95)>> - Getting constantly milked is as good as sex, as far as $he's concerned. @@.hotpink;$He is happy@@ to have $his breasts receive so much attention. - <<set $slaves[$i].devotion += 1>> - <<if $slaves[$i].need>><<set $slaves[$i].need = 0>><</if>> - <</if>> - <</if>> - - <<if $slaves[$i].career == "a dairy cow" && $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>> - $He feels like @@.hotpink;$he was made to be milked,@@ @@.mediumaquamarine;not that $he'd complain about such a good feeling.@@ - <<set $slaves[$i].devotion++, $slaves[$i].trust++>> - <<if $slaves[$i].need>><<set $slaves[$i].need = 0>><</if>> - <</if>> - - <<if ($slaves[$i].nipples != "huge")>> - <<if ($slaves[$i].nipples == "inverted")>> - <<if ($slaves[$i].fetish == "masochist") && ($slaves[$i].fetishKnown == 1)>> - Having the milkers constantly haul $his inverted nipples out is @@.hotpink;extremely uncomfortable; $he loves it.@@ - <<set $slaves[$i].devotion += 3>> - <<else>> - Having the milkers constantly haul $his inverted nipples out is @@.mediumorchid;extremely uncomfortable.@@ - <<set $slaves[$i].devotion -= 3>> - <</if>> - <<if (random(1,100) > 50)>> - The constant suction @@.lime;permanently protrudes them,@@ and - <<if (random(1,2) == 1)>> - it turns out they're absolutely massive. - <<set $slaves[$i].nipples = "huge">> - <<else>> - it turns out they're nice and puffy. - <<set $slaves[$i].nipples = "puffy">> - <</if>> - <</if>> - <<elseif ($slaves[$i].nipples == "partially inverted")>> - <<if ($slaves[$i].fetish == "masochist") && ($slaves[$i].fetishKnown == 1)>> - Having the milkers constantly haul $his inverted nipples out is @@.hotpink;quite uncomfortable; $he loves it.@@ - <<set $slaves[$i].devotion += 1>> - <<else>> - Having the milkers constantly haul $his inverted nipples out is @@.mediumorchid;quite uncomfortable.@@ - <<set $slaves[$i].devotion -= 1>> - <</if>> - <<if (random(1,100) > 30)>> - The constant suction @@.lime;permanently protrudes them,@@ and - <<if (random(1,2) == 1)>> - it turns out they're pretty cute. - <<set $slaves[$i].nipples = "cute">> - <<else>> - it turns out they're nice and puffy. - <<set $slaves[$i].nipples = "puffy">> - <</if>> - <</if>> - <<elseif ($slaves[$i].nipples == "puffy") && (random(1,100) > 90)>> - Producing this river of milk @@.lime;enlarges $his nipples:@@ they're now enormous. - <<set $slaves[$i].nipples = "huge">> - <<elseif ($slaves[$i].nipples == "cute") && (random(1,100) > 80)>> - Producing this river of milk @@.lime;makes $his nipples nice and puffy.@@ - <<set $slaves[$i].nipples = "puffy">> - <<elseif ($slaves[$i].nipples == "tiny")>> - Producing this river of milk @@.lime;makes $his nipples grow to a nice size.@@ - <<set $slaves[$i].nipples = "cute">> - <<elseif ($slaves[$i].areolae < 4) && (random(1,100) > 30+($slaves[$i].areolae*20))>> - Producing this river of milk @@.lime;broadens $his areolae.@@ - <<set $slaves[$i].areolae += 1>> - <</if>> - <</if>> - <<set $slaves[$i].lactationDuration = 2>> - <<if $slaves[$i].boobsMilk > 0>> - <<set $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>> - <</if>> - -<</if>> /* CLOSES BREAST MILKING */ - -<<if ["be confined in the arcade", "get milked", "work in the dairy"].includes($slaves[$i].assignment)>> /* prevents penthouse milkers from overstepping their boundaries */ - - <<if ($slaves[$i].balls > 0)>> - - <<set $cumSlaves += 1>> - <<set $cum = cumAmount($slaves[$i])>> - - <<if $slaves[$i].lactation > 0>> - $His - <<else>> - $slaves[$i].slaveName's - <</if>> - - <<if $slaves[$i].dick > 0>> - <<if ($slaves[$i].dick > 6)>> - inhuman - <<elseif ($slaves[$i].dick > 5)>> - massive - <<elseif ($slaves[$i].dick > 4)>> - big - <<elseif ($slaves[$i].dick > 3)>> - sizable - <<elseif ($slaves[$i].dick > 2)>> - moderate - <<elseif ($slaves[$i].dick > 1)>> - little - <<else>> - tiny - <</if>> - prick is - <<if $slaves[$i].lactation > 0>> - also - <</if>> - machine-milked - <<else>> - butt is machine-fucked - <</if>> - to extract the cum from $his - <<if ($slaves[$i].scrotum == 0)>> - invisible - <<else>> - <<switch $slaves[$i].balls>> - <<case 10>>inhuman - <<case 9>>titanic - <<case 8>>gigantic - <<case 7>>monstrous - <<case 6>>huge - <<case 5>>pendulous - <<case 4>>swinging - <<case 3>>big - <<case 2>>average - <<case 1>>pathetic - <<default>>hypertrophied - <</switch>> - <</if>> - <<if $slaves[$i].drugs == "testicle enhancement">> - balls, relieving them of the excessive cum production caused by the testicle enhancement drugs. - <<elseif $slaves[$i].drugs == "hyper testicle enhancement">> - balls, relieving them of the excessive cum production caused by the hyper testicle enhancement drugs. - <<else>> - balls. - <</if>> - - <<if $slaves[$i].diet == "cum production">> - $His diet is designed for cum production. - <</if>> - - <<set $hormones = $slaves[$i].hormoneBalance/50>> - <<if $hormones < -1>> - $His internal chemistry is perfectly suited to cum production. - <<elseif $hormones < 0>> - $His hormonal balance favors cum production. - <<elseif $hormones > 0>> - $His hormonal balance impedes cum production. - <<elseif $hormones > 1>> - $His internal chemistry is poorly suited to cum production. - <</if>> - - <<if $slaves[$i].scrotum == 0>> - $He does produce cum despite $his apparent ballslessness, but less than $he would if they weren't hidden inside $him. - <</if>> - - <<if $slaves[$i].prostate>> - <<if $slaves[$i].prostate > 2>> - $His heavily altered prostate greatly increases the volume of $his ejaculations and promotes excessive, watery semen production. This dilute ejaculate @@.red;sells poorly@@ compared to normal cum. - <<elseif $slaves[$i].prostate > 1>> - $His hyperactive prostate increases the volume of $his ejaculations and promotes good semen production. - <</if>> - <<else>> - $His lack of a prostate reduces the health and volume of $his ejaculations. - <</if>> - - <<if ($slaves[$i].devotion > 50)>> - $He's so happy that $his mental state has a positive impact on $his semen production. - <<elseif ($slaves[$i].devotion < -50)>> - $He's so unhappy that $his mental state has a negative impact on $his semen production. - <</if>> - - <<if ($slaves[$i].health > 50)>> - $His shining health helps $him really produce. - <<elseif ($slaves[$i].health < -50)>> - $His poor health impedes semen production. - <</if>> - - <<if $slaves[$i].vasectomy == 1>> - $His cum lacks the primary ingredient, sperm, thanks to $his vasectomy, @@.red;considerably lowering the value@@ of $his ejaculate. - <<elseif $slaves[$i].ballType == "sterile">> - $His cum lacks vigor entirely, thanks to $his chemical castration, @@.red;considerably lowering the value@@ of $his ejaculate. - <</if>> - - /* Dairy rework cum half here */ - <<if ($slaves[$i].assignment == "work in the dairy")>> - <<if ($dairyStimulatorsUpgrade == 1)>> - <<if ($dairyStimulatorsSetting > 0)>> - <<set $cum += $cum*(0.2*($dairyStimulatorsSetting+$dairyRestraintsSetting+Math.trunc((50-$slaves[$i].physicalAge)/20)))>> - <</if>> - <<if ($slaves[$i].chem > 360)>> - <<set $cum = Math.trunc($cum*0.6)>> - <<elseif ($slaves[$i].chem > 100)>> - <<set $cum = Math.trunc($cum*((600-$slaves[$i].chem)/600))>> - <</if>> - <<elseif ($Milkmaid != 0)>> - <<if ($Milkmaid.dick > 4) && canAchieveErection($Milkmaid)>> - $Milkmaid.slaveName sometimes stands in for the machines, which is a polite way of saying $he sometimes fucks $slaves[$i].slaveName's ass to help $him cum. - <<set $cum += $cum*0.2>> - <</if>> - <</if>> - <<elseif ($slaves[$i].assignment == "be confined in the arcade")>> - <<set $cum = $cum*0.5>> - <</if>> - - <<set $cum = Math.trunc($cum)>> - <<if $cum < 1>> - <<set $cum = 1>> - <</if>> - <<set $slaves[$i].counter.cum += $cum>> - <<set $cumTotal += $cum>> - <<set _incomeStats.cum = $cum>> - - <<if ($arcologies[0].FSPastoralist == "unset")>> - <<set _cumSale = ($cum*random(15,25))>> - <<if $slaves[$i].vasectomy == 1 || $slaves[$i].ballType == "sterile">><<set _cumSale *= 0.2>><<elseif $slaves[$i].prostate == 3>><<set _cumSale *= 0.5>><</if>> - $He produces <<print $cum>> deciliters of cum over the week; the fresh ejaculate is sold for @@.yellowgreen;<<print cashFormat(_cumSale)>>.@@ - <<elseif $arcologies[0].FSPastoralistLaw == 1>> - <<set _cumSale = ($cum*(random(20,40)))>> - <<if $slaves[$i].vasectomy == 1 || $slaves[$i].ballType == "sterile">><<set _cumSale *= 0.2>><<elseif $slaves[$i].prostate == 3>><<set _cumSale *= 0.5>><</if>> - $He produces <<print $cum>> deciliters of cum over the week; the fresh ejaculate, which is in extremely high demand as one of $arcologies[0].name's few legal sources of animal protein, is sold for @@.yellowgreen;<<print cashFormat(_cumSale)>>.@@ - <<else>> - <<set _cumSale = ($cum*(random(10,20)+Math.trunc($arcologies[0].FSPastoralist/10)))>> - <<if $slaves[$i].vasectomy == 1 || $slaves[$i].ballType == "sterile">><<set _cumSale *= 0.2>><<elseif $slaves[$i].prostate == 3>><<set _cumSale *= 0.5>><</if>> - $He produces <<print $cum>> deciliters of cum over the week; the fresh ejaculate, which is in high demand given the new cultural preference for slave products, is sold for @@.yellowgreen;<<print cashFormat(_cumSale)>>.@@ - <</if>> - <<if $slaves[$i].assignment == "work in the dairy">> - <<run cashX(_cumSale, "milkedDairy", $slaves[$i])>> - <<elseif $slaves[$i].assignment == "get milked">> - <<run cashX(_cumSale, "milked", $slaves[$i])>> - <<else>> - <<run cashX(_cumSale, "extraMilk", $slaves[$i])>> - <</if>> - <<set _incomeStats.income += _cumSale>> - - <<if ($slaves[$i].energy > 95)>> - Getting $his dick constantly milked is almost as good as getting constant blowjobs as far as $he's concerned. @@.hotpink;$He is happy@@ to have $his member receive so much attention. - <<set $slaves[$i].devotion += 1>> - <</if>> - - <<if $slaves[$i].need>> - $His cock and balls are milked so thoroughly that $he's involuntarily sexually sated, regardless of $his feelings and tastes. - <<set $slaves[$i].need = 0>> - <</if>> - - <<if !canAchieveErection($slaves[$i])>> - Since $he cannot maintain an erection, $he requires @@.gold;painful@@ and @@.mediumorchid;degrading@@ anal electrostimulation to produce. - <<set $slaves[$i].devotion -= 2>> - <<set $slaves[$i].trust -= 2>> - <<if ($slaves[$i].anus == 0)>> - The electrostimulator @@.lime;breaks in $his virgin asshole.@@ - <<set $slaves[$i].anus = 1>> - <</if>> - <<elseif ($slaves[$i].devotion <= 20)>> - Since $he's unaroused by $his situation, $he requires @@.gold;painful@@ and @@.mediumorchid;degrading@@ anal electrostimulation to produce. - <<set $slaves[$i].devotion -= 2>> - <<set $slaves[$i].trust -= 2>> - <<if ($slaves[$i].anus == 0)>> - The electrostimulator @@.lime;breaks in $his virgin asshole.@@ - <<set $slaves[$i].anus = 1>> - <</if>> - <</if>> - - <<if ($slaves[$i].balls < 3) && $slaves[$i].ballType != "sterile">> - <<if ($slaves[$i].balls < 2)>> - <<if (random(1,100) > (70 + ($slaves[$i].geneMods.NCS * 15)))>> - Constant semen production and continual emptying and refilling @@.lime;increases the size of $his tiny testicles.@@ - <<set $slaves[$i].balls += 1>> - <</if>> - <<elseif (random(1,100) > (90 + ($slaves[$i].geneMods.NCS * 5)))>> - Constant semen production and continual emptying and refilling @@.lime;increases the size of $his small testicles.@@ - <<set $slaves[$i].balls += 1>> - <</if>> - <</if>> - - <</if>> /* CLOSES COCK MILKING */ - - <<if $slaves[$i].genes == "XX" && $slaves[$i].prostate > 0 && $slaves[$i].balls == 0>> - $His female prostate fluid is considered an exotic delicacy. - <<set $fluid = $slaves[$i].prostate * $slaves[$i].energy/5 + 1>> - <<if $slaves[$i].energy > 10>> - <<if $slaves[$i].health > 50>> - <<if $slaves[$i].energy > 90>> - As a nympho, $he has no trouble orgasming almost constantly. - <</if>> - <<set $fluid = $fluid*$slaves[$i].health/50>> - $His shining health keeps $his juices flowing. - <<elseif $slaves[$i].health < -50>> - <<set $fluid = $fluid * (1 + $slaves[$i].health/50)>> - $He is so unwell, $he produces less than normal. - <</if>> - <<else>> - /* $slaves[$i].energy <= 10 */ - Unfortunately, $he is frigid and rarely reaches orgasm in spite of the intense automatic stimulation. - <</if>> - <<set $fluid = Math.clamp(Math.trunc($fluid),1,1000)>> - <<set _incomeStats.fluid = $fluid>> - <<print $fluid >> deciliters of uncommon ejaculate is gathered during $his milkings. - <<set $fluidSale = $fluid*random(40,50)>> - <<if $arcologies[0].FSPastoralist != "unset" && $arcologies[0].FSPastoralist > 30>> - <<set $fluidSale = Math.trunc($fluidSale*(1 + ($arcologies[0].FSPastoralist-30)/140))>> /* fully accepted parsoralism gives +50% on the price*/ - Because of your arcology's cultural preferences, it comes with extra value. - <</if>> - It is sold for @@.yellowgreen;<<print cashFormat($fluidSale)>>.@@ - <<if $slaves[$i].assignment == "work in the dairy">> - <<run cashX($fluidSale, "milkedDairy", $slaves[$i])>> - <<elseif $slaves[$i].assignment == "get milked">> - <<run cashX($fluidSale, "milked", $slaves[$i])>> - <<else>> - <<run cashX($fluidSale, "extraMilk", $slaves[$i])>> - <</if>> - <<set _incomeStats.income += $fluidSale>> - <</if>> /* CLOSES FEMALE PROSTATE FLUID GATHERING */ - - <<if ($slaves[$i].behavioralQuirk == "fitness")>> - $slaves[$i].slaveName @@.hotpink;privately enjoys@@ the focus on $his health and fitness that comes with being a cow. - <<set $slaves[$i].devotion += 1>> - <</if>> - - <<if ($showVignettes == 1 && ($slaves[$i].assignment == "get milked" || $slaves[$i].assignment == "work in the dairy"))>> - <<set _vignette = GetVignette($slaves[$i])>> - __This week__ _vignette.text - <<if (_vignette.type == "cash")>> - <<set $FResult = FResult($slaves[$i])>> - <<if (_vignette.effect > 0)>> - @@.yellowgreen;making you an extra <<print cashFormat(Math.trunc($FResult*_vignette.effect))>>.@@ - <<elseif (_vignette.effect < 0)>> - @@.red;losing you <<print cashFormat(Math.abs(Math.trunc($FResult*_vignette.effect)))>>.@@ - <<else>> - an incident without lasting effect. - <</if>> - <<if $slaves[$i].assignment == "work in the dairy">> - <<run cashX(Math.trunc($FResult*_vignette.effect), "milkedDairy", $slaves[$i])>> - <<elseif $slaves[$i].assignment == "get milked">> - <<run cashX(Math.trunc($FResult*_vignette.effect), "milked", $slaves[$i])>> - <<else>> - <<run cashX(Math.trunc($FResult*_vignette.effect), "extraMilk", $slaves[$i])>> - <</if>> - <<set _incomeStats.income += Math.trunc($FResult*_vignette.effect)>> - <<elseif (_vignette.type == "devotion")>> - <<if (_vignette.effect > 0)>> - <<if $slaves[$i].devotion > 50>> - @@.hotpink;increasing $his devotion to you.@@ - <<elseif $slaves[$i].devotion >= -20>> - @@.hotpink;increasing $his acceptance of you.@@ - <<elseif $slaves[$i].devotion > -10>> - @@.hotpink;reducing $his dislike of you.@@ - <<else>> - @@.hotpink;reducing $his hatred of you.@@ - <</if>> - <<elseif (_vignette.effect < 0)>> - <<if $slaves[$i].devotion > 50>> - @@.mediumorchid;reducing $his devotion to you.@@ - <<elseif $slaves[$i].devotion >= -20>> - @@.mediumorchid;reducing $his acceptance of you.@@ - <<elseif $slaves[$i].devotion > -10>> - @@.mediumorchid;increasing $his dislike of you.@@ - <<else>> - @@.mediumorchid;increasing $his hatred of you.@@ - <</if>> - <<else>> - an incident without lasting effect. - <</if>> - <<set $slaves[$i].devotion += 1*_vignette.effect>> - <<elseif (_vignette.type == "trust")>> - <<if (_vignette.effect > 0)>> - <<if $slaves[$i].trust > 20>> - @@.mediumaquamarine;increasing $his trust in you.@@ - <<elseif $slaves[$i].trust > -10>> - @@.mediumaquamarine;reducing $his fear of you.@@ - <<else>> - @@.mediumaquamarine;reducing $his terror of you.@@ - <</if>> - <<elseif (_vignette.effect < 0)>> - <<if $slaves[$i].trust > 20>> - @@.gold;reducing $his trust in you.@@ - <<elseif $slaves[$i].trust >= -20>> - @@.gold;increasing $his fear of you.@@ - <<else>> - @@.gold;increasing $his terror of you.@@ - <</if>> - <<else>> - an incident without lasting effect. - <</if>> - <<set $slaves[$i].trust += 1*_vignette.effect>> - <<elseif (_vignette.type == "health")>> - <<if (_vignette.effect > 0)>> - @@.green;improving $his health.@@ - <<elseif (_vignette.effect < 0)>> - @@.red;affecting $his health.@@ - <<else>> - an incident without lasting effect. - <</if>> - <<set $slaves[$i].health += 2*_vignette.effect>> - <<else>> - <<set $FResult = FResult($slaves[$i])>> - <<if (_vignette.effect > 0)>> - @@.green;gaining you a bit of reputation.@@ - <<elseif (_vignette.effect < 0)>> - @@.red;losing you a bit of reputation.@@ - <<else>> - an incident without lasting effect. - <</if>> - <<run repX( Math.trunc($FResult*_vignette.effect*0.1), "vignette", $slaves[$i])>> - <<set _incomeStats.rep += Math.trunc($FResult*_vignette.effect*0.1)>> - <</if>> - <</if>> - - /* FACILITY DECORATION IMPACTS */ - - <<if $slaves[$i].assignment == "work in the dairy">> - <<if $dairyDecoration != "standard">> - <<set _fsGain = Math.min(0.0001*$FSSingleSlaveRep*($milk+5*$cum), 1)>> - <<switch $dairyDecoration>> - <<case "Roman Revivalist">> - <<set $arcologies[0].FSRomanRevivalist = Math.clamp($arcologies[0].FSRomanRevivalist += _fsGain,0,100)>> - <<case "Aztec Revivalist">> - <<set $arcologies[0].FSAztecRevivalist = Math.clamp($arcologies[0].FSAztecRevivalist += _fsGain,0,100)>> - <<case "Egyptian Revivalist">> - <<set $arcologies[0].FSEgyptianRevivalist = Math.clamp($arcologies[0].FSEgyptianRevivalist += _fsGain,0,100)>> - <<case "Edo Revivalist">> - <<set $arcologies[0].FSEdoRevivalist = Math.clamp($arcologies[0].FSEdoRevivalist += _fsGain,0,100)>> - <<case "Arabian Revivalist">> - <<set $arcologies[0].FSArabianRevivalist = Math.clamp($arcologies[0].FSArabianRevivalist += _fsGain,0,100)>> - <<case "Chinese Revivalist">> - <<set $arcologies[0].FSChineseRevivalist = Math.clamp($arcologies[0].FSChineseRevivalist += _fsGain,0,100)>> - <<case "Chattel Religionist">> - <<set $arcologies[0].FSChattelReligionist = Math.clamp($arcologies[0].FSChattelReligionist += _fsGain,0,100)>> - <<case "Degradationist">> - <<set $arcologies[0].FSDegradationist = Math.clamp($arcologies[0].FSDegradationist += _fsGain,0,100)>> - <<case "Repopulation Focus">> - <<set $arcologies[0].FSRepopulationFocus = Math.clamp($arcologies[0].FSRepopulationFocus += _fsGain,0,100)>> - <<case "Eugenics">> - <<set $arcologies[0].FSRestart = Math.clamp($arcologies[0].FSRestart += _fsGain,0,100)>> - <<case "Asset Expansionist">> - <<set $arcologies[0].FSAssetExpansionist = Math.clamp($arcologies[0].FSAssetExpansionist += _fsGain,0,100)>> - <<case "Transformation Fetishist">> - <<set $arcologies[0].FSTransformationFetishist = Math.clamp($arcologies[0].FSTransformationFetishist += _fsGain,0,100)>> - <<case "Gender Radicalist">> - <<set $arcologies[0].FSGenderRadicalist = Math.clamp($arcologies[0].FSGenderRadicalist += _fsGain,0,100)>> - <<case "Gender Fundamentalist">> - <<set $arcologies[0].FSGenderFundamentalist = Math.clamp($arcologies[0].FSGenderFundamentalist += _fsGain,0,100)>> - <<case "Physical Idealist">> - <<set $arcologies[0].FSPhysicalIdealist = Math.clamp($arcologies[0].FSPhysicalIdealist += _fsGain,0,100)>> - <<case "Hedonistic">> - <<set $arcologies[0].FSHedonisticDecadence = Math.clamp($arcologies[0].FSHedonisticDecadence += _fsGain,0,100)>> - <<case "Supremacist">> - <<set $arcologies[0].FSSupremacist = Math.clamp($arcologies[0].FSSupremacist += _fsGain,0,100)>> - <<case "Subjugationist">> - <<set $arcologies[0].FSSubjugationist = Math.clamp($arcologies[0].FSSubjugationist += _fsGain,0,100)>> - <<case "Paternalist">> - <<set $arcologies[0].FSPaternalist = Math.clamp($arcologies[0].FSPaternalist += _fsGain,0,100)>> - <<case "Pastoralist">> - <<set $arcologies[0].FSPastoralist = Math.clamp($arcologies[0].FSPastoralist += _fsGain,0,100)>> - <<case "Maturity Preferentialist">> - <<set $arcologies[0].FSMaturityPreferentialist = Math.clamp($arcologies[0].FSMaturityPreferentialist += _fsGain,0,100)>> - <<case "Youth Preferentialist">> - <<set $arcologies[0].FSYouthPreferentialist = Math.clamp($arcologies[0].FSYouthPreferentialist += _fsGain,0,100)>> - <<case "Body Purist">> - <<set $arcologies[0].FSBodyPurist = Math.clamp($arcologies[0].FSBodyPurist += _fsGain,0,100)>> - <<case "Slimness Enthusiast">> - <<set $arcologies[0].FSSlimnessEnthusiast = Math.clamp($arcologies[0].FSSlimnessEnthusiast += _fsGain,0,100)>> - <<case "Slave Professionalism">> - <<set $arcologies[0].FSSlaveProfessionalism = Math.clamp($arcologies[0].FSSlaveProfessionalism += _fsGain,0,100)>> - <<case "Intellectual Dependency">> - <<set $arcologies[0].FSIntellectualDependency = Math.clamp($arcologies[0].FSIntellectualDependency += _fsGain,0,100)>> - <<case "Petite Admiration">> - <<set $arcologies[0].FSPetiteAdmiration = Math.clamp($arcologies[0].FSPetiteAdmiration += _fsGain,0,100)>> - <<case "Statuesque Glorification">> - <<set $arcologies[0].FSStatuesqueGlorification = Math.clamp($arcologies[0].FSStatuesqueGlorification += _fsGain,0,100)>> - <</switch>> - <</if>> - <</if>> - -<</if>> diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw index 97e0168ca59..9a445f86b65 100644 --- a/src/uncategorized/saRules.tw +++ b/src/uncategorized/saRules.tw @@ -144,7 +144,7 @@ <<if $servantMilkers == 1>> $His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can, <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <<else>> @@ -637,7 +637,7 @@ <<if $servantMilkers == 1>> $His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can, <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <<else>> @@ -1111,7 +1111,7 @@ <<if $servantMilkers == 1>> $His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can, <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <<else>> @@ -1482,7 +1482,7 @@ <<if $servantMilkers == 1>> $His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can, <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <<else>> @@ -1788,7 +1788,7 @@ <<if $servantMilkers == 1>> $His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can, <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <<else>> @@ -2293,7 +2293,7 @@ <<if $servantMilkers == 1>> $His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can, <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <<else>> @@ -2814,7 +2814,7 @@ <<if $servantMilkers == 1>> $His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can, <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <<else>> @@ -3311,7 +3311,7 @@ <<if $servantMilkers == 1>> $His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can, <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <<else>> @@ -3809,7 +3809,7 @@ <<elseif $slaves[$i].rules.lactation == "maintain">> $His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses milkers whenever $he can, <<set $servantMilkersMultiplier = 0.75>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <</if>> @@ -4363,7 +4363,7 @@ <<if $servantMilkers == 1>> $His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can, <<set $servantMilkersMultiplier = 0.25>> - <<silently>><<include "SA get milked">><</silently>> + <<run saGetMilked($slaves[$i])>> <<set $servantMilkersMultiplier = 1>> giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@ <<else>> diff --git a/src/uncategorized/servantsQuartersReport.tw b/src/uncategorized/servantsQuartersReport.tw index ec010ee868b..853a50862a2 100644 --- a/src/uncategorized/servantsQuartersReport.tw +++ b/src/uncategorized/servantsQuartersReport.tw @@ -285,7 +285,7 @@ <</if>> <br> _He2 <<= saServant($slaves[$i])>> <<if ($servantMilkers == 1) && ($slaves[$i].lactation > 0)>> - <br> _He2 <<include "SA get milked">> + <br> _He2 <<= saGetMilked($slaves[$i])>> <<set _SQMilk += $milk, _SQMilkSale += $milkSale>> <</if>> <br> @@ -302,7 +302,7 @@ <<include "SA chooses own job">> <<run saServant($slaves[$i])>> <<if ($servantMilkers == 1) && ($slaves[$i].lactation > 0)>> - <<include "SA get milked">> + <<run saGetMilked($slaves[$i])>> <<set _SQMilk += $milk, _SQMilkSale += $milkSale>> <</if>> <<run saChoosesOwnClothes($slaves[$i])>> -- GitLab