diff --git a/src/endWeek/reports/incubatorReport.js b/src/endWeek/reports/incubatorReport.js index fce43f22a9fd40130bfe5c3699f19fbae3a8d8a4..2de9eb4febe97dd61dda7465c4d37b1853d9bdf3 100644 --- a/src/endWeek/reports/incubatorReport.js +++ b/src/endWeek/reports/incubatorReport.js @@ -663,9 +663,9 @@ App.EndWeek.incubatorReport = function() { r.push(`${His} <span class="orange">NCS blocks growth</span> despite the added estrogen.`); } else { // Inside the tank we cannot reach ridiculous sizes + const origBoobs = tank.boobs; const boobsTarget = Math.min(tank.natural.boobs, 1200); if (tank.boobs < boobsTarget * 0.95) { - r.push(`The added estrogen <span class="green">causes ${his} breasts to swell.</span>`); tank.boobs += random( Math.floor(boobsTarget * 0.1), Math.floor(boobsTarget * 0.2) @@ -677,9 +677,11 @@ App.EndWeek.incubatorReport = function() { } } if (tank.boobs < 400 && random(1, 100) > 60) { - r.push(`The added estrogen <span class="green">causes ${his} breasts to swell.</span>`); tank.boobs += 50; } + if (tank.boobs > origBoobs) { + r.push(`The added estrogen <span class="green">causes ${his} breasts to swell.</span>`); + } if (tank.hips < 2 && random(1, 100) > 90) { r.push(`The added estrogen <span class="green">causes ${his} hips to widen.</span>`); tank.hips++; diff --git a/src/events/RE/reAWOL.js b/src/events/RE/reAWOL.js index b4974b09ae2fd26be12df0172218befde16b964d..19c1d22563f4d562c4efa38f4b10ec7d0deb3a77 100644 --- a/src/events/RE/reAWOL.js +++ b/src/events/RE/reAWOL.js @@ -167,7 +167,7 @@ App.Events.REAWOL = class REAWOL extends App.Events.BaseEvent { function enslave() { let r = []; - r.push(`Despite the trouble ${he} has caused you, you manage to complete the legalities and biometric scanning quickly and without incident. Of course, this is in large part due to the fact that the would-be mutineer is of course restrained. Based on the accounts of ${his} captors and the numerous injuries evident amongst them, ${he} is likely to be violent when ${he} is finally released.`); + r.push(`Despite the trouble ${he} has caused you, you manage to complete the legalities and biometric scanning quickly and without incident. Of course, this is in large part due to the fact that the would-be mutineer is thoroughly restrained. Based on the accounts of ${his} captors and the numerous injuries evident amongst them, ${he} is likely to be violent when ${he} is finally released.`); r.push(App.UI.newSlaveIntro(slave)); return r; } diff --git a/src/events/scheduled/seRaiding.js b/src/events/scheduled/seRaiding.js index 94c071588054cabd5a8f5d83f223c12f2b4173d5..29255c816505a4d1f5b098bb69f5d11ef1d42d0c 100644 --- a/src/events/scheduled/seRaiding.js +++ b/src/events/scheduled/seRaiding.js @@ -996,9 +996,9 @@ App.Events.SERaiding = class SERaiding extends App.Events.BaseEvent { if (targetEscape > MercCapture) { r.push(`The ${V.mercenariesTitle} clash with the politician's security detail amidst a maelstrom of terrified civilians and the confrontation drags out for some time. By the time your ${V.mercenariesTitle} can advance, they discover that the politician has already been evacuated.`); } else if (raidEscape === 1) { - r.push(`With their security detail defeated and their crowd of supporters offering no protection, the politician tries to take up one of ${his} fallen protector's pistols to defend ${himself}. Unfortunately for ${him} and for your mercenaries, the politician has a staggeringly poor understanding of firearms and manages to shoot themselves in the face when they discharge the weapon. With the politician dead, there is little your ${V.mercenariesTitle} can do but exit the venue.`); + r.push(`With ${his} security detail defeated and ${his} crowd of supporters offering no protection, the politician tries to take up one of ${his} fallen protectors' pistols to defend ${himself}. Unfortunately for ${him} and for your mercenaries, the politician has a staggeringly poor understanding of firearms and manages to shoot ${himself} in the face when ${he} discharges the weapon. With the politician dead, there is little your ${V.mercenariesTitle} can do but exit the venue.`); } else { - r.push(`With their security detail defeated and their crowd of supporters offering no protection, the politician promptly surrenders in the hopes that they won't be harmed and is escorted to the waiting VTOL. The politician spends the VTOL ride quietly, only breaking ${his} silence to ask your ${V.mercenariesTitle} about where ${he} is being brought and why. When they do not answer ${he} simply fusses with ${his} outfit, as if headed to an important interview.`); + r.push(`With ${his} security detail defeated and ${his} crowd of supporters offering no protection, the politician promptly surrenders in the hopes that ${he} won't be harmed and is escorted to the waiting VTOL. The politician spends the VTOL ride quietly, only breaking ${his} silence to ask your ${V.mercenariesTitle} about where ${he} is being brought and why. When they do not answer ${he} simply fusses with ${his} outfit, as if headed to an important interview.`); newSlave(slave); // skip New Slave Intro } @@ -1020,7 +1020,7 @@ App.Events.SERaiding = class SERaiding extends App.Events.BaseEvent { } else if (raidEscape === 1) { r.push(`When the ${V.mercenariesTitle} break down the door to the shut-in's shack, they are met with a terrible stench of dust and decay. Judging by the body hanging limply from the banisters, the shut-in took ${his} own life some time ago.`); } else { - r.push(`When your ${V.mercenariesTitle} break down the door to the shut-in's shack, they are met with a surprised and somewhat unkempt ${woman} staring at them. Despite ${his} lack of social interaction, they know better than to argue with a small army of armed ${V.mercenariesTitle} and quietly accepts being escorted back to the waiting VTOL. The shut-in spends the VTOL ride sitting quietly in ${his} seat. Confused by ${his} silence, your ${V.mercenariesTitle} attempt to engage ${him} in conversation but are granted no response.`); + r.push(`When your ${V.mercenariesTitle} break down the door to the shut-in's shack, they are met with a surprised and somewhat unkempt ${woman} staring at them. Despite ${his} lack of social interaction, ${he} knows better than to argue with a small army of armed ${V.mercenariesTitle} and quietly accepts being escorted back to the waiting VTOL. The shut-in spends the VTOL ride sitting quietly in ${his} seat. Confused by ${his} silence, your ${V.mercenariesTitle} attempt to engage ${him} in conversation but are granted no response.`); newSlave(slave); // skip New Slave Intro } @@ -1042,7 +1042,7 @@ App.Events.SERaiding = class SERaiding extends App.Events.BaseEvent { } else if (raidEscape === 1) { r.push(`When your ${V.mercenariesTitle} corner the investor in the exposition, ${he} seemingly mistakes them for international police intent on taking ${him} in for prior economic crimes. Before ${he} can be subdued, the investor swallows a concealed pill and crumples to the ground dead.`); } else { - r.push(`When your ${V.mercenariesTitle} corner the investor in the exposition, ${he} seemingly mistakes them for international police intent on taking ${him} in for prior economic crimes. ${He} begrudgingly surrenders and is subsequently escorted back to a waiting VTOL. The investor spends the VTOL ride practicing their sales pitches, techniques and speeches. It seems they haven't grasped what their destination is, nor the fate that awaits them upon arrival.`); + r.push(`When your ${V.mercenariesTitle} corner the investor in the exposition, ${he} seemingly mistakes them for international police intent on taking ${him} in for prior economic crimes. ${He} begrudgingly surrenders and is subsequently escorted back to a waiting VTOL. The investor spends the VTOL ride practicing ${his} sales pitches, techniques and speeches. It seems ${he} hasn't grasped what ${his} destination is, nor the fate that awaits ${him} upon arrival.`); newSlave(slave); // skip New Slave Intro } diff --git a/src/facilities/implantManufactory.js b/src/facilities/implantManufactory.js index 53834d73056339633a21d5c83e282295ac0cedbe..4c8185cfe81479ab0247d340c34bda82e9595fc8 100644 --- a/src/facilities/implantManufactory.js +++ b/src/facilities/implantManufactory.js @@ -36,7 +36,7 @@ App.UI.implantManufactory = function() { if (V.meshImplants > 0) { App.UI.DOM.appendNewElement("div", node, "The manufactory is capable of producing supportive mesh breast implants."); } else { - upgradeOption(node, 10_000, "plans for supportive mesh breast implants", ["Will allow the construction of organic and supportive mesh breast implants."], + upgradeOption(node, 10_000, "plans for supportive mesh breast implants", ["will allow the construction of organic and supportive mesh breast implants."], 40_000, () => { V.meshImplants = 1; }); } @@ -45,19 +45,19 @@ App.UI.implantManufactory = function() { } if (V.bellyImplants === 0) { - upgradeOption(node, 2000, "schematics for fillable abdominal implants", ["Will allow the construction of fillable abdominal implants for the autosurgery."], + upgradeOption(node, 2000, "schematics for fillable abdominal implants", ["will allow the construction of fillable abdominal implants for the autosurgery."], 30_000, () => { V.bellyImplants = 1; }, "access experimental schematics for fillable abdominal implants"); } else if (V.bellyImplants > 0) { App.UI.DOM.appendNewElement("div", node, "The manufactory is capable of crafting fillable abdominal implants."); if (V.bellyImplants === 1 && V.cervixImplants === 0) { /* show only after belly implants already researched */ /* nanotech like technology much more impressive and costly than simple implant */ - upgradeOption(node, 6000, "schematics for cervix filter micropumps", ["Will allow the construction of cervix filter micropumps for fillable abdominal implants using the autosurgery."], + upgradeOption(node, 6000, "schematics for cervix filter micropumps", ["will allow the construction of cervix filter micropumps for fillable abdominal implants using the autosurgery."], 70_000, () => { V.cervixImplants = 1; }, "access experimental cervix filter micropumps schematics for abdominal implants"); } else if (V.cervixImplants === 1) { App.UI.DOM.appendNewElement("div", node, "The manufactory is capable of crafting cervix filter micropumps for fillable abdominal implants."); - upgradeOption(node, 8_000, "conversion kits for rectal filter micropumps", ["Will allow the construction of the anal equivalent of the cervix micropumps using the autosurgery."], + upgradeOption(node, 8_000, "conversion kits for rectal filter micropumps", ["will allow the construction of the anal equivalent of the cervix micropumps using the autosurgery."], 60_000, () => { V.cervixImplants = 2; }, "obtain conversion kits for rectal filter micropumps" ); @@ -72,7 +72,7 @@ App.UI.implantManufactory = function() { if (V.fertilityImplant === 1) { App.UI.DOM.appendNewElement("div", node, "The manufactory is capable of crafting fertility enhancing implants for ovaries."); } else { - upgradeOption(node, 3_000, "fertility enhancing ovarian implants", ["Will allow the construction of implants that encourage multiple eggs being released during ovulation."], + upgradeOption(node, 3_000, "fertility enhancing ovarian implants", ["will allow the construction of implants that encourage multiple eggs being released during ovulation."], 10_000, () => { V.fertilityImplant = 1; }, "access fertility boosting ovarian implants" ); @@ -84,7 +84,7 @@ App.UI.implantManufactory = function() { if (V.seeHyperPreg === 1 && V.seeExtreme === 1) { if (V.permaPregImplant === 0) { - upgradeOption(node, 4_000, "schematics for an experimental implantable pregnancy generator", ["Will allow the construction of implants that force perpetual pregnancy."], + upgradeOption(node, 4_000, "schematics for an experimental implantable pregnancy generator", ["will allow the construction of implants that force perpetual pregnancy."], 40_000, () => { V.permaPregImplant = 1; }, "access experimental pregnancy generator schematics"); } else if (V.permaPregImplant > 0) { @@ -100,7 +100,7 @@ App.UI.implantManufactory = function() { if (V.prostateImplants !== 1) { upgradeOption(node, 3_000, "plans for ejaculation enhancing prostate implants", - ["Will allow the construction of a prostate implant designed to stimulate fluid production for massive ejaculations. Beware of leaking and dehydration."], + ["will allow the construction of a prostate implant designed to stimulate fluid production for massive ejaculations. Beware of leaking and dehydration."], 30_000, () => { V.prostateImplants = 1; }, "access plans for prostate implants" ); diff --git a/src/facilities/organFarmPassage.js b/src/facilities/organFarmPassage.js index 3018a97bf53b862356f2b94bb63fe8e648d418a3..2f7980c117ad92771c762e79000d0d88345ae87f 100644 --- a/src/facilities/organFarmPassage.js +++ b/src/facilities/organFarmPassage.js @@ -61,13 +61,13 @@ App.UI.organFarm = function() { } else if (V.rep > 10000 * PCSkillCheck) { if (V.organFarmUpgrade === 2) { upgradeOption(node, 10_000, "Upgrade the organ farm to the cutting edge model", - ["Will allow the organ farm to rapidly grow organs without risk to the implantee's health."], + ["will allow the organ farm to rapidly grow organs without risk to the implantee's health."], 150_000, () => { V.organFarmUpgrade = 3; }, "" ); } else if (V.organFarmUpgrade === 1) { upgradeOption(node, 10_000, "Upgrade the organ farm with an experimental growth accelerator", - ["Will allow the organ farm to quickly grow organs. Implanted organs may cause health issues."], + ["will allow the organ farm to quickly grow organs. Implanted organs may cause health issues."], 75_000, () => { V.organFarmUpgrade = 2; }, "" ); @@ -78,7 +78,7 @@ App.UI.organFarm = function() { App.UI.DOM.appendNewElement("div", node, "The organ farm is capable of growing fertile ovaries for postmenopausal slaves."); } else { upgradeOption(node, 10_000, "Purchase designs for cloning fertile ovaries for menopausal slaves", - ["Will allow the growth of younger, fertile ovaries for menopausal slaves. Restored fertility will only last for a couple years at most."], + ["will allow the growth of younger, fertile ovaries for menopausal slaves. Restored fertility will only last for a couple years at most."], 30_000, () => { V.youngerOvaries = 1; }, "access designs for cloning fertile ovaries for menopausal slaves" ); @@ -88,7 +88,7 @@ App.UI.organFarm = function() { App.UI.DOM.appendNewElement("div", node, "The organ farm is capable of growing genetically modified ovaries that will never undergo menopause."); } else if (V.immortalityFormula > 0 && V.youngerOvaries > 0) { upgradeOption(node, 10_000, "Fund research into applying the immortality formula to ovaries", - ["Will allow the growth of genetically modified ovaries that continually regenerate their ovarian follicles, thus never undergoing menopause. As long as the body remains young, it shall remain fertile."], + ["will allow the growth of genetically modified ovaries that continually regenerate their ovarian follicles, thus never undergoing menopause. As long as the body remains young, it shall remain fertile."], 1_000_000, () => { V.immortalOvaries = 1; }, "fund additional fertility-focused research into the immortality project" ); @@ -131,7 +131,7 @@ App.UI.organFarm = function() { if (V.arcologies[0].FSGenderRadicalistDecoration === 100) { if (V.arcologies[0].FSGenderRadicalistResearch === 0) { upgradeOption(node, 10_000, "Fund research into developing male pregnancy methods", - ["Will allow cloning and production of anal uteri and ovaries."], + ["will allow cloning and production of anal uteri and ovaries."], 50_000, () => { V.arcologies[0].FSGenderRadicalistResearch = 1; }, "access the research necessary to develop anal uteri and ovaries" ); diff --git a/src/npc/descriptions/belly/belly.js b/src/npc/descriptions/belly/belly.js index 3936fcd19ba93ce2df7b8a43a6a8e2d67c0f2818..3c1c9ba810f99576c91a90d9dce74441457dbeae 100644 --- a/src/npc/descriptions/belly/belly.js +++ b/src/npc/descriptions/belly/belly.js @@ -12107,7 +12107,7 @@ App.Desc.belly = function(slave, descType = DescType.NORMAL) { } else if (slave.bellyImplant > 0) { r.push(`${slave.slaveName}'s teddy is specially designed to accommodate such a ridiculously swollen ${girl} and comes with a gap in the front for ${his} monolithic implant-filled belly to expand out of.`); } else { - r.push(`${slave.slaveName}'s teddy is specially designed to accommodate such a ridiculously gravig ${girl} and comes with a gap in the front for ${his} monolithic pregnant belly to uncontrollably billow out of.`); + r.push(`${slave.slaveName}'s teddy is specially designed to accommodate such a ridiculously gravid ${girl} and comes with a gap in the front for ${his} monolithic pregnant belly to uncontrollably billow out of.`); } } else if (slave.bellyPreg >= 600000) { if (isBellyFluidLargest) { @@ -12150,7 +12150,7 @@ App.Desc.belly = function(slave, descType = DescType.NORMAL) { r.push(`${slave.slaveName}'s teddy is carefully fitted to contain ${his} huge pregnant belly, but only emphasizes just how large and ripe ${he} is.`); } } else if (slave.weight > 190) { - r.push(`${slave.slaveName}'s tailored teddy is strained to capacity by ${his} massively fat belly. ${His} flab juts out around its edges while drawing it focuses on drawing attention to ${his} folds, rolls and assorted jiggling.`); + r.push(`${slave.slaveName}'s tailored teddy is strained to capacity by ${his} massively fat belly. ${His} flab juts out around its edges, while the remaining coverage merely draws attention to ${his} folds, rolls and assorted jiggling.`); } else if (slave.belly >= 15000 || slave.bellyAccessory === "a huge empathy belly") { if (slave.bellyAccessory === "a huge empathy belly") { r.push(`${slave.slaveName}'s teddy is filled to its limit by ${his} huge pregnant belly. ${His} popped navel prominently pokes through the taut material.`); diff --git a/src/pregmod/FCTV/FCTVshows.js b/src/pregmod/FCTV/FCTVshows.js index 1ed0323e40ede02b30c7c4b53b230ddf3723c470..5b966375b5826a8089ad3f86a4458db9a260c372 100644 --- a/src/pregmod/FCTV/FCTVshows.js +++ b/src/pregmod/FCTV/FCTVshows.js @@ -1060,7 +1060,7 @@ App.Data.FCTV.channels = { if (V.seeDicks === 0) { r.push(`<i>greeting,</i>`); } else { - r.push(`dangling cock, even soft it looks massive,`); + r.push(`dangling cock – even soft, it looks massive –`); } r.push(`but manages to shake the proffered hand. "Thanks for having me!" She gestures widely to the room. "What's with the lights and... umm... décor?"</p>`); r.push(`<p>The milk maid smiles. "A happy cow is a productive cow, Ma'am. The cows spend lots of time here, and Master says 'a pleasant and relaxing environment makes a big difference in their production.' Master says that it's an investment to make the cows feel like they're in a fancy spa, but that it's so cheap it pays for itself in extra milk lickity-split."</p>`);