Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • PantyNabber/fc-pregmod
  • pregmodfan/fc-pregmod
  • Alice.Grant/fc-pregmod
  • powerfful/fc-pregmod
  • elstumpo/fc-pregmod
  • Y/fc-pregmod
  • floer/fc-pregmod
  • oidocrop/fc-pregmod
  • hawk5005/fc-pregmod
  • nn/fc-pregmod
  • latios298/fc-pregmod
  • brpregmodfan/fc-pregmod
  • SomeoneTookMyUserName/fc-pregmod
  • 000-250-006/fc-pregmod
  • rewrica/fc-pregmod
  • Stuffedgame/fc-pregmod
  • wisepants314/fc-pregmod
  • fcanon/fc-pregmod
  • randomanon1/pregmod-mod-cyberfurry
  • teddy.buckland/fc-pregmod
  • farsinian_591b7a2d8b49d/fc-pregmod
  • FCShotadev/fc-pregmod
  • uselessartifact/fc-pregmod
  • irina_90/fc-pregmod
  • thaumx/fc-pregmod
  • MouseOfLight/fc-pregmod
  • empresssela/fc-pregmod
  • MasterAaran/fc-pregmod
  • ishy/fc-pregmod
  • psychofox/fc-pregmod
  • shadomancer/fc-pregmod
  • tycrakgg/fc-pregmod
  • azktaawc/fc-pregmod
  • andonno07/fc-pregmod
  • Onithyr/fc-pregmod
  • redneck987.jl/fc-pregmod
  • Farseeker/fc-pregmod
  • milliarc/fc-pregmod
  • BeefimusMaximus/fc-pregmod
  • magicknight79/fc-pregmod
  • hexall90/fc-pregmod
  • cantworkforever/fc-pregmod
  • jc052005/fc-pregmod
  • klorpa/fc-pregmod
  • doku/fc-pregmod
  • samhradh/fc-pregmod
  • scientist/fc-pregmod
  • albania420/fc-pregmod
  • Editoranon/fc-pregmod
  • Anony/fc-pregmod
  • deimios666/fc-pregmod
  • IvoHoe/fc-pregmod
  • bitty/fc-pregmod
  • RealAnon1800/fc-pregmod
  • brankirk/fc-pregmod
  • Amygdalan/fc-pregmod
  • DankWolf/fc-pregmod
  • Supot1951/fc-pregmod
  • bcy603/fc-pregmod
  • pwfxjpuv/fc-pregmod
  • ThreadAnon/fc-pregmod
  • Anon1800/fc-pregmod
  • Echoart/fc-pregmod
  • Dingotush/fc-pregmod
  • anonman/fc-pregmod
  • Arkerthan/fc-pregmod
  • svornost/fc-pregmod
  • wierdwierdos/fc-pregmod
  • wetwareAnon/fc-pregmod
  • QuartzHat/fc-pregmod
  • IchthysdeKilt/fc-pregmod
  • AnonAnonFC/fc-pregmod
  • Alexsis/fc-pregmod
  • LoyalTreeWP/fc-pregmod
  • aerialace/fc-pregmod
  • NurseryAnon/fc-pregmod
  • drakeashordcataclysm/fc-pregmod
  • AshVaris/fc-pregmod
  • purely0nothing/fc-pregmod
  • alex2011/fc-pregmod
  • Lindontree/fc-pregmod
  • FCaa/fc-pregmod
  • TR-8R/fc-pregmod
  • Jones/fc-pregmod
  • brr99/fc-pregmod
  • WriteAnon101/fc-pregmod
  • Drosil/fc-pregmod
  • Bob1221/fc-pregmod
  • vas/fc-pregmod
  • gitgud.user.937/fc-pregmod
  • D-K/fc-pregmod
  • AnonDev/fc-pregmod
  • madman23456/fc-pregmod
  • InarusLynx/fc-pregmod
  • Sonofrevvan/fc-pregmod
  • Randoisrando/fc-pregmod
  • cheez94/fc-pregmod
  • dldldl/fc-pregmod
  • alice321/fc-pregmod
  • Alexei91/fc-pregmod
  • darkcy/fc-pregmod
  • MapleMAD/fc-pregmod
  • pillarofsalt/fc-pregmod
  • vultureangels/fc-pregmod
  • kernel/fc-pregmod
  • nooneman/fc-pregmod
  • deepmurk/fc-pregmod
  • uglybead/fc-pregmod
  • lemongrab/fc-pregmod
  • temperence-chan/fc-pregmod
  • hcommenter/fc-pregmod
  • SpedeMemerson/fc-pregmod
  • qwijqwsf/fc-pregmod
  • BuDClow/fc-pregmod
  • HiveBro/fc-pregmod
  • shoku/fc-pregmod
  • ezsh/fc-pregmod
  • Blank/fc-pregmod
  • randoralcissian/fc-pregmod
  • benito92/fc-pregmod
  • balakart/fc-pregmod
  • wedonotsaw/fc-pregmod
  • Cayleth/fc-pregmod
  • Khip/fc-pregmod
  • Zfair/fc-pregmod
  • promethium/fc-pregmod
  • scyne/fc-pregmod
  • ZZC/fc-pregmod
  • SilverJanine/fc-pregmod
  • joxosix654email-9.co/fc-pregmod
  • Littlefootlittleguy/fc-pregmod
  • FelipeBA/fc-pregmod
  • bigtiddygothbf/fc-pregmod
  • Qotsafan/fc-pregmod
  • Zachpocalypse/fc-pregmod
  • milkanon66/fc-pregmod
  • GreGGoZZ/fc-pregmod
  • drsnarf86/fc-pregmod
  • valen102938/fc-pregmod
  • pregspammer/fc-pregmod
  • ponderin94/fc-pregmod
  • nook/fc-pregmod
  • carnifex34/fc-pregmod-mod-carni
  • SyntheticHigh/fc-pregmod
  • bob112211/fc-pregmod
  • amomynous0/fc-pregmod
  • oxone/fc-pregmod
  • MaxEuwe/fc-pregmod
  • nekoanon/fc-pregmod
  • preglocke/fc-pregmod
  • valen10293847/fc-pregmod
  • 2hu4u/fc-pregmod
  • mayibrad/fc-pregmod
  • Screm/fc-pregmod
  • Ansopedi/fc-pregmod
  • mrchaosbones/fc-pregmod
  • putrid/fc-pregmod
  • Kinnerman/fc-pregmod
  • gungrave1155/fc-pregmod
  • prndev/fc-pregmod
  • weresmilodon/fc-pregmod
  • auxxigobin/fc-pregmod
  • alice-chan/fc-pregmod
  • wigglie/fc-pregmod
  • jrliltfgb/fc-pregmod
  • Lord.alek.shade/fc-pregmod
  • truetailthesquire/fc-pregmod
  • lowercasedonkey/fc-pregmod
  • alice-chan9/fc-pregmod
  • eroglyphics/fc-pregmod
  • taliyent/fc-pregmod
  • zenzombie90/fc-pregmod
  • kjarik/fc-pregmod
  • wriggler/fc-pregmod
  • midnightblue/fc-pregmod
  • faraen/fc-pregmod
  • sigurd.cole/fc-pregmod
  • FCbuganon/fc-pregmod
  • kidkinster/fc-pregmod
  • Kar_Dragon/fc-pregmod
  • Zhafier/fc-pregmod
  • crcaretti/fc-pregmod
  • anond/fc-pregmod
  • tempmania/fc-pregmod
  • Dhanze/fc-pregmod
  • EstaUnCachucha/fc-pregmod
  • oniAnon/fc-pregmod
  • plebian/fc-pregmod
  • maxd569/fc-pregmod
  • Levarn/fc-pregmod
  • pumpkinspice/fc-pregmod
  • GammaXai/fc-pregmod
  • DanBackslide/fc-pregmod
  • i107760/fc-pregmod
  • Absimiliard/fc-pregmod
  • AmbrosiaCheesecake/fc-pregmod
  • fuguer/fc-pregmod
  • Azurel/fc-pregmod
  • Fake_Dev/fc-pregmod
  • ddongsanda/fc-pregmod
  • Combine456/fc-pregmod
  • UnwrappedGodiva/fc-pregmod
  • toyRuberDucky/fc-pregmod
  • zmobie/fc-pregmod
  • chuongk/fc-pregmod
  • BigWalnuts/fc-pregmod
  • Birdstrike/fc-pregmod
  • r3d/fc-pregmod
  • mawspa/fc-pregmod
  • sushila/fc-pregmod
  • DeathShip/fc-pregmod
  • eggrollsandwich/fc-pregmod
  • krayken/fc-pregmod
  • Reman/fc-pregmod
  • dwiafgts/fc-pregmod
  • jort93/fc-pregmod
  • teruterubouzu/fc-pregmod
  • flut/fc-pregmod
  • john-normal/fc-pregmod
  • Jonathan2405/fc-pregmod
  • Tyrgalon/fc-pregmod
  • NovX/fc-pregmod
  • Star1/fc-pregmod
  • Transhumanist01/fc-pregmod
  • m1017242/fc-pregmod
  • Rizal98798/fc-pregmod
  • jamezu369/fc-pregmod
  • thisisawittyname/fc-pregmod
  • KnightBoulegard/fc-pregmod
  • jblack/fc-pregmod
  • Souldrainr/fc-pregmod
  • torbjornhub/fc-pregmod
  • turnop/fc-pregmod
  • breadedpigeon/fc-pregmod
  • fire.maker/fc-pregmod
  • Inahaze/fc-pregmod
  • Waerjak/fc-pregmod
  • Trashman1138/fc-pregmod
  • supanintendo/fc-pregmod
  • _no0neman/fc-pregmod
  • Weslo/fc-pregmod
  • qw89/fc-pregmod
  • EvilDruid/fc-pregmod
  • dt25/fc-pregmod
  • Raou/fc-pregmod
  • DDouFu/fc-pregmod
  • Mauno/fc-pregmod
  • PandemoniumPenguin/fc-pregmod
  • AngelPuppet/fc-pregmod
  • DasUser79/fc-pregmod
  • Keaeag3s/fc-pregmod
  • HazeHazeHaze/fc-pregmod
  • hpotato/fc-pregmod
  • owouchthatbloodyhurt/fc-pregmod
  • v7Silent/fc-pregmod
  • nickylass/fc-pregmod
  • ThePrimer/fc-pregmod
  • PineCone/fc-pregmod
  • bruhmomentum17/fc-pregmod
  • CheatDude/fc-pregmod
  • synnove/fc-pregmod
  • en_bees/fc-pregmod
  • seronis/fc-pregmod
  • Nepidinepnep/fc-pregmod
  • Titanninja/fc-pregmod
  • Elohiem/fc-pregmod
  • cocoajazz/fc-pregmod
  • tfwncagf/fc-pregmod
  • ChunkyMonke/fc-pregmod
  • Dracoman671/fc-pregmod
  • jgl/fc-pregmod
  • Inev/fc-pregmod
  • jbige/fc-pregmod
  • MonsterMate/fc-pregmod
  • Konstantin6961/fc-pregmod
  • darth_ashi/fc-pregmod
  • shinx/fc-pregmod
  • Anu/fc-pregmod
  • Greytide/fc-pregmod
  • Bonafidemetal/fc-pregmod
  • Peje/fc-pregmod
  • Hexfy98/fc-pregmod
  • TooSlow/fc-pregmod
  • SoGu/fc-pregmod
  • CloudyCoffee/fc-pregmod
  • Welptard/fc-pregmod
  • Ploc/fc-pregmod-ploc
  • rain-/fc-pregmod
  • Pecanus/fc-pregmod
  • Jhortrax/fc-pregmod
  • valleytwo/fc-pregmod
  • QCmd/fc-pregmod
  • kung-wada/fc-pregmod
  • LolGaye/fc-pregmod
  • Exspiravit1/fc-pregmod
  • jadeddog/fc-pregmod
  • buster-scruggs/fs-antebellum-revivalism
  • policia123/fc-pregmod
  • evrgentesee/fc-pregmod
  • rko127/fc-pregmod
  • ExcalGrip12/fc-pregmod
  • BlackAion/fc-pregmod
  • Boss2020/fc-pregmod
  • Lawled/fc-pregmod
  • shiro/fc-pregmod
  • Skavenkeri/fc-pregmod
  • PooPooDooDooHead/fc-pregmod
  • Dugee/fc-pregmod
  • Portal124/fc-pregmod-vore
  • Fekenol/fc-pregmod
  • elGuapo/fc-pregmod
  • KelioSteel/fc-pregmod
  • sldlddk/fc-pregmod
  • lumepanter/fc-pregmod
  • ryuhana/fc-pregmod
  • Nene1009yb/fc-pregmod
  • DontAskDontTell/fc-pregmod-extra-events
  • Dulgi/fc-pregmod
  • Jate/fc-pregmod
  • percy365/fc-pregmod
  • franklygeorge/fc-pregmod
  • Dragneel117/fc-pregmod
  • vl96/fc-pregmod
  • Gorlom/fc-economicmod
  • NotAlive/fc-pregmod
  • Heretek/fc-pregmod
  • joeshmo828282/fc-pregmod
  • deswes/fc-pregmod
  • Nanana21/fc-pregmod
  • Gbr6/fc-pregmod
  • RandomNecro/fc-pregmod
  • Trinidad/fc-pregmod
  • anonymousey/fc-pregmod
  • macaronideath/fc-pregmod
  • fcbleh/fc-pregmod
  • jk3000/fc-pregmod
  • Akane/fc-pregmod
  • TheBoi/fc-pregmod
  • Sheenariel/fc-pregmod
  • Metapod/multi-custom
  • Banyanael/fc-pregmod
  • frogge/fc-pregmod
  • idkkk12385/fc-pregmod
  • Mirarara/fc-pregmod
  • DeaDa/fc-pregmod-thedeal
  • CobraCommander/fc-pregmod
  • bicobus/fc-pregmod
  • CardcaptorRLH85/fc-pregmod
  • temp-ui-start/fc-pregmod
  • PresidentConvert/fc-pregmod
  • delizious/fc-pregmod
  • Ducati/fc-pregmod
  • DerangedLoner/fc-pregmod-development-fork
  • ProjectVictory/fc-pregmod
  • forecastle/fc-pregmod
  • Apathy/fc-pregmod
  • indf/fc-pregmod-dev
  • GavAndAlt/fc-pregmod
  • hagamablabla/fc-pregmod
  • Alaco/fc-pregmod
  • DCoded/fc-pregmod
  • LittlePlague/fc-pregmod
  • MissOnahole/fc-pregmod
  • ishy2317/fc-pregmod
  • nielkazama/fc-pregmod
  • Phobos/fc-pregmod
  • kraster/fc-pregmod
  • JasWS/fc-pregmod
  • FelixJS/fc-pregmod
  • NCherfaoui/fc-pregmod
  • MidnightMoose/fc-pregmod
  • jjjjjj/fc-pregmod
  • Cl0ver/fc-pregmod
  • Pythoniqus/fc-pregmod
  • JohnMolotov/fc-pregmod
  • anonymouspregmodder/fc-pregmod-anonymouspregmodder
  • Fanatey/fc-pregmod
  • Mizako/fc-pregmod
  • Nithhogg/fc-pregmod
  • Bluecoffee/fc-pregmod
  • Exarch/pregmod-ai-clothing
381 results
Show changes
/**
* Places the mind of the slave at `V.temp.swappingSlave` in a body husk (at `V.temp.husk`) and returns a description of the procedure
* @returns {DocumentFragment}
*/
App.UI.SlaveInteract.huskSlaveSwap = function() { App.UI.SlaveInteract.huskSlaveSwap = function() {
const node = new DocumentFragment(); const node = new DocumentFragment();
const target = getSlave(V.temp.swappingSlave); const target = getSlave(V.temp.swappingSlave);
const oldSlave = clone(target); const oldSlave = clone(target);
/** @type {FC.SlaveState} */
const husk = V.temp.husk;
if (!husk) {
throw new Error(`V.temp.husk was not set`);
}
const { const {
he he
} = getPronouns(target); } = getPronouns(target);
App.UI.DOM.appendNewElement("p", node, `You strap ${target.slaveName}, and the body to which ${he} will be transferred, into the remote surgery and stand back as it goes to work.`); App.UI.DOM.appendNewElement("p", node, `You strap ${target.slaveName}, and the body to which ${he} will be transferred, into the remote surgery and stand back as it goes to work.`);
bodySwap(target, asSlave(V.temp.activeSlave), false); bodySwap(target, asSlave(husk), false);
const gps = isInGenePool(V.temp.activeSlave) ? getGenePoolRecordWriteMode(V.temp.activeSlave) : undefined; const gps = isInGenePool(husk) ? getGenePoolRecordWriteMode(husk) : undefined;
// special exception to swap genePool since the temporary body lacks an entry. Otherwise we could just call bodySwap using the genePool entries if (gps) {
gps.race = target.race; // not sure what Svornost was trying to accomplish with this, but gps will always be undefined due to how this function is called. So this code should never run, but I left it here just in case - FranklyGeorge
gps.origRace = target.origRace; // special exception to swap genePool since the temporary body lacks an entry. Otherwise we could just call bodySwap using the genePool entries - Svornost
gps.skin = target.skin; gps.race = target.race;
gps.markings = target.markings; gps.origRace = target.origRace;
gps.eye.origColor = target.eye.origColor; gps.skin = target.skin;
gps.origHColor = target.origHColor; gps.markings = target.markings;
gps.origSkin = target.origSkin; gps.eye.origColor = target.eye.origColor;
gps.face = target.face; gps.origHColor = target.origHColor;
gps.pubicHStyle = target.pubicHStyle; gps.origSkin = target.origSkin;
gps.underArmHStyle = target.underArmHStyle; gps.face = target.face;
gps.eyebrowHStyle = target.eyebrowHStyle; gps.pubicHStyle = target.pubicHStyle;
gps.underArmHStyle = target.underArmHStyle;
gps.eyebrowHStyle = target.eyebrowHStyle;
}
App.Events.addParagraph(node, [ App.Events.addParagraph(node, [
`After an honestly impressive procedure, ${target.slaveName} is recovering nicely.`, `After an honestly impressive procedure, ${target.slaveName} is recovering nicely.`,
...@@ -57,7 +70,7 @@ App.UI.SlaveInteract.huskSlaveSwap = function() { ...@@ -57,7 +70,7 @@ App.UI.SlaveInteract.huskSlaveSwap = function() {
App.Events.addParagraph(node, r); App.Events.addParagraph(node, r);
target.bodySwap++; target.bodySwap++;
cashX(payout, "slaveTransfer"); cashX(payout, "slaveTransfer");
V.temp.activeSlave = 0; V.temp.husk = undefined;
V.temp.swappingSlave = 0; V.temp.swappingSlave = 0;
return node; return node;
}; };
...@@ -1630,14 +1630,5 @@ App.Desc.Player.belly = function(PC = V.PC) { ...@@ -1630,14 +1630,5 @@ App.Desc.Player.belly = function(PC = V.PC) {
thoughts() thoughts()
); );
/* translate between pregnancy and dick descriptions
if (PC.preg > 0) {
if (PC.belly < 100) {
r.push(`Your <span class="red">period hasn't happened in some time;</span> you might be pregnant.`);
}
}
*/
return r.join(" "); return r.join(" ");
}; };
...@@ -365,8 +365,10 @@ App.Desc.Player.butt = function(PC = V.PC) { ...@@ -365,8 +365,10 @@ App.Desc.Player.butt = function(PC = V.PC) {
} }
r.push(`While it is intended to make anal sex more interesting, it has the unfortunate side-effect of requiring you to be on a special diet to prevent complications.`); r.push(`While it is intended to make anal sex more interesting, it has the unfortunate side-effect of requiring you to be on a special diet to prevent complications.`);
} }
if (hasAnyArms(PC) && PC.mpreg === 1) { if (PC.mpreg === 1) {
if (PC.belly >= 5000) { if (!hasAnyArms(PC)){
r.push(`You focus your attention to your womb;`);
} else if (PC.belly >= 5000) {
if (PC.bellyPreg >= 2000) { if (PC.bellyPreg >= 2000) {
r.push(`You run your ${hands} across your pregnancy; it's pretty obvious that you have a womb, but what`); r.push(`You run your ${hands} across your pregnancy; it's pretty obvious that you have a womb, but what`);
} else { } else {
...@@ -391,6 +393,15 @@ App.Desc.Player.butt = function(PC = V.PC) { ...@@ -391,6 +393,15 @@ App.Desc.Player.butt = function(PC = V.PC) {
r.push(`pregnancies.`); r.push(`pregnancies.`);
} }
} }
if (V.menstruation && PC.fertknown && PC.pubertyXX) {
if (PC.fertLate < 0 || (!PC.pregKnown && PC.preg > 0)) {
r.push(`Your <span class="red">period hasn't happened in some time;</span> you might be pregnant.`);
} else if (PC.fertPeak === 2) {
r.push(`You're on your period this week.`);
} else if (PC.fertPeak <= 0) {
r.push(`You're ovulating, so any sex this week will be risky.`);
}
}
if (PC.geneMods.progenitor === 1) { if (PC.geneMods.progenitor === 1) {
r.push(`You've undergone gene therapy to better carry children.`); r.push(`You've undergone gene therapy to better carry children.`);
if (canGetPregnant(PC)) { if (canGetPregnant(PC)) {
......
...@@ -1383,8 +1383,10 @@ App.Desc.Player.crotch = function(PC = V.PC) { ...@@ -1383,8 +1383,10 @@ App.Desc.Player.crotch = function(PC = V.PC) {
r.push(clit()); r.push(clit());
} }
if (hasAnyArms(PC) && PC.ovaries === 1) { if (PC.ovaries === 1) {
if (PC.belly >= 5000) { if (!hasAnyArms(PC)){
r.push(`You focus your attention to your womb;`);
} else if (PC.belly >= 5000) {
if (PC.bellyPreg >= 2000) { if (PC.bellyPreg >= 2000) {
r.push(`You run your ${hands} across your obvious womb;`); r.push(`You run your ${hands} across your obvious womb;`);
} else { } else {
...@@ -1409,6 +1411,14 @@ App.Desc.Player.crotch = function(PC = V.PC) { ...@@ -1409,6 +1411,14 @@ App.Desc.Player.crotch = function(PC = V.PC) {
} }
if (PC.vagina === -1) { if (PC.vagina === -1) {
r.push(`You lack a vagina, which means you can only bear children surgically.`); r.push(`You lack a vagina, which means you can only bear children surgically.`);
} else if (V.menstruation && PC.fertknown && PC.pubertyXX) {
if (PC.fertLate < 0 || (!PC.pregKnown && PC.preg > 0)) {
r.push(`Your <span class="red">period hasn't happened in some time;</span> you might be pregnant.`);
} else if (PC.fertPeak === 2) {
r.push(`You're on your period this week.`);
} else if (PC.fertPeak <= 0) {
r.push(`You're ovulating, so any sex this week will be risky.`);
}
} }
if (PC.geneMods.progenitor === 1) { if (PC.geneMods.progenitor === 1) {
r.push(`You've undergone gene therapy to better carry children.`); r.push(`You've undergone gene therapy to better carry children.`);
......
...@@ -830,7 +830,7 @@ App.UI.electiveSurgery = function() { ...@@ -830,7 +830,7 @@ App.UI.electiveSurgery = function() {
if (V.PC.hips < -1) { if (V.PC.hips < -1) {
r.push(`very narrow hips.`); r.push(`very narrow hips.`);
} else if (V.PC.hips < 0) { } else if (V.PC.hips < 0) {
r.push(`wide hips.`); r.push(`narrow hips.`);
} else if (V.PC.hips > 2) { } else if (V.PC.hips > 2) {
r.push(`absurdly wide hips.`); r.push(`absurdly wide hips.`);
} else if (V.PC.hips > 1) { } else if (V.PC.hips > 1) {
...@@ -1423,7 +1423,7 @@ App.UI.electiveSurgery = function() { ...@@ -1423,7 +1423,7 @@ App.UI.electiveSurgery = function() {
const r = []; const r = [];
const linkArray = []; const linkArray = [];
App.Events.addNode(el, [ App.Events.addNode(el, [
`"self-conscious about the size of your areolae? We can tone them down for <span class="cash">${cashFormat(applyDiscount(3000))}.</span> Or maybe you'd like 'em bigger, or perhaps something, you know, different? They can be grafted and reshaped for only <span class="cash">${cashFormat(applyDiscount(6000))}</span> into some fun sizes and patterns!"` `"Self-conscious about the size of your areolae? We can tone them down for <span class="cash">${cashFormat(applyDiscount(3000))}.</span> Or maybe you'd like 'em bigger, or perhaps something, you know, different? They can be grafted and reshaped for only <span class="cash">${cashFormat(applyDiscount(6000))}</span> into some fun sizes and patterns!"`
], "div"); ], "div");
r.push(`You have <span class="intro question">`); r.push(`You have <span class="intro question">`);
if (V.PC.areolae === 0) { if (V.PC.areolae === 0) {
......
...@@ -387,43 +387,58 @@ App.UI.managePersonalAffairs = function() { ...@@ -387,43 +387,58 @@ App.UI.managePersonalAffairs = function() {
} else if (PC.preg >= 8) { } else if (PC.preg >= 8) {
text.push(`You're currently ${num(PC.preg)} ${PC.preg > 1 ? `weeks` : `week`} pregnant${V.PC.pregSource !== -1 && V.PC.pregSource !== -6 ? ", something rather unbecoming for an arcology owner" : ""}.`); text.push(`You're currently ${num(PC.preg)} ${PC.preg > 1 ? `weeks` : `week`} pregnant${V.PC.pregSource !== -1 && V.PC.pregSource !== -6 ? ", something rather unbecoming for an arcology owner" : ""}.`);
if (!FutureSocieties.isActive('FSRestart', arcology) || V.eugenicsFullControl === 1 || (V.PC.pregSource !== -1 && V.PC.pregSource !== -6)) { if (V.scenarios.contraceptivesBan === 0) {
miniSceneSpan.append(abortLink); if (!FutureSocieties.isActive('FSRestart', arcology) || V.eugenicsFullControl === 1 || (V.PC.pregSource !== -1 && V.PC.pregSource !== -6)) {
text.push(miniSceneSpan); miniSceneSpan.append(abortLink);
text.push(miniSceneSpan);
}
} }
} else if (PC.preg >= 4 && PC.pregKnown) { } else if (PC.preg >= 4 && PC.pregKnown) {
text.push(`You're having morning sickness${V.PC.pregSource !== -1 && V.PC.pregSource !== -6 ? "; it isn't too late to hide your pregnancy if desired.." : ""}.`); text.push(`You're having morning sickness${V.PC.pregSource !== -1 && V.PC.pregSource !== -6 ? "; it isn't too late to hide your pregnancy if desired.." : ""}.`);
if (!FutureSocieties.isActive('FSRestart', arcology) || V.eugenicsFullControl === 1 || (V.PC.pregSource !== -1 && V.PC.pregSource !== -6)) { if (V.scenarios.contraceptivesBan === 0) {
miniSceneSpan.append(abortLink); if (!FutureSocieties.isActive('FSRestart', arcology) || V.eugenicsFullControl === 1 || (V.PC.pregSource !== -1 && V.PC.pregSource !== -6)) {
text.push(miniSceneSpan); miniSceneSpan.append(abortLink);
text.push(miniSceneSpan);
}
} }
} else if (PC.preg >= 4) { } else if (PC.preg >= 4) {
miniSceneSpan.append(`Your period is late, so the first thing you do is test yourself for a potential pregnancy. A pregnancy test confirms that `, App.UI.DOM.makeElement("span", `you are pregnant. `, ['pregnant'])); miniSceneSpan.append(`Your period is late, so the first thing you do is test yourself for a potential pregnancy. A pregnancy test confirms that `, App.UI.DOM.makeElement("span", `you are pregnant. `, ['pregnant']));
PC.pregKnown = 1; PC.pregKnown = 1;
if (!FutureSocieties.isActive('FSRestart', arcology) || V.eugenicsFullControl === 1 || (V.PC.pregSource !== -1 && V.PC.pregSource !== -6)) { if (V.scenarios.contraceptivesBan === 0) {
miniSceneSpan.append(abortLink); if (!FutureSocieties.isActive('FSRestart', arcology) || V.eugenicsFullControl === 1 || (V.PC.pregSource !== -1 && V.PC.pregSource !== -6)) {
miniSceneSpan.append(abortLink);
text.push(miniSceneSpan); text.push(miniSceneSpan);
}
} }
} else if (PC.preg > 0 && PC.pregKnown) { } else if (PC.preg > 0 && PC.pregKnown) {
text.push(`You have a bun baking in the oven.`); text.push(`You have a bun baking in the oven.`);
let div = App.UI.DOM.makeElement("div"); let div = App.UI.DOM.makeElement("div");
transplantAndTerminateButtons(V.PC, div, { if (V.scenarios.contraceptivesBan === 1) {
terminateAllText: "Pop some morning after pills", transplantAndTerminateButtons(V.PC, div, {
terminateText: `Terminate #terminatable of your fetuses`, transplantAllText: "Make it someone else's problem",
transplantAllText: "Make it someone else's problem", transplantText: `Offload #transplantable of your fetuses`,
transplantText: `Offload #transplantable of your fetuses`, });
}); } else {
transplantAndTerminateButtons(V.PC, div, {
terminateAllText: "Pop some morning after pills",
terminateText: `Terminate #terminatable of your fetuses`,
transplantAllText: "Make it someone else's problem",
transplantText: `Offload #transplantable of your fetuses`,
});
}
text.push(div); text.push(div);
} else if (PC.preg > 0) { } else if (PC.preg > 0) {
text.push(`Your fertile ${PC.mpreg === 1 ? "ass" : ""}pussy has been thoroughly seeded; there is a chance you are pregnant.`); text.push(`Your fertile ${PC.mpreg === 1 ? "ass" : ""}pussy has been thoroughly seeded; there is a chance you are pregnant.`);
let div = App.UI.DOM.makeElement("div"); let div = App.UI.DOM.makeElement("div");
transplantAndTerminateButtons(V.PC, div, { if (V.scenarios.contraceptivesBan === 0) {
terminateText: "Pop some morning after pills", transplantAndTerminateButtons(V.PC, div, {
mode: "terminate", terminateText: "Pop some morning after pills",
}); mode: "terminate",
});
}
text.push(div); text.push(div);
} else if (PC.pregWeek < 0) { } else if (PC.pregWeek < 0) {
text.push(`You're still recovering from your recent pregnancy.`); text.push(`You're still recovering from your recent pregnancy.`);
...@@ -461,15 +476,23 @@ App.UI.managePersonalAffairs = function() { ...@@ -461,15 +476,23 @@ App.UI.managePersonalAffairs = function() {
if (PC.forcedFertDrugs > 0) { if (PC.forcedFertDrugs > 0) {
text.push(`You feel a strange eagerness whenever you think of bareback sex.`); text.push(`You feel a strange eagerness whenever you think of bareback sex.`);
} }
links.push( if (!V.policies.contraceptivesBan) {
App.UI.DOM.link(`Start taking birth control`, () => { links.push(
V.PC.preg = -1; App.UI.DOM.link(`Start taking birth control`, () => {
App.UI.DOM.replace(pregnancyDiv, pregnancy); V.PC.preg = -1;
}), App.UI.DOM.replace(pregnancyDiv, pregnancy);
App.UI.DOM.disabledLink(`Stop taking birth control`, [ }),
`You are not currently taking birth control.` App.UI.DOM.disabledLink(`Stop taking birth control`, [
]), `You are not currently taking birth control.`
); ]),
);
} else {
links.push(
App.UI.DOM.disabledLink(`Start taking birth control`, [
`You can't find anyone selling any.`
]),
);
}
text.push(App.UI.DOM.generateLinksStrip(links)); text.push(App.UI.DOM.generateLinksStrip(links));
} }
......
...@@ -10,7 +10,7 @@ App.UI.PCSurgeryDegradation = function(surgeryType) { ...@@ -10,7 +10,7 @@ App.UI.PCSurgeryDegradation = function(surgeryType) {
const { const {
HeU, HisU, HeU, HisU,
heU, hisU, himU, himselfU heU, hisU, himU, himselfU
} = getNonlocalPronouns(V.seeDicks).appendSuffix("U"); } = getNonlocalPronouns(V.seeDicks === 100 ? 100 : 0).appendSuffix("U");
switch (surgeryType) { switch (surgeryType) {
case "skinTone": case "skinTone":
......
App.Art.cacheArtData(); App.Art.cacheArtData();
App.Corporate.Init(); App.Corporate.Init();
App.RA.Activation.populateGetters(); App.RA.Activation.populateGetters();
App.Art.GenAI.UI.QueueOverlay.init();
...@@ -22,6 +22,7 @@ $(document).on(":passagestart", event => { ...@@ -22,6 +22,7 @@ $(document).on(":passagestart", event => {
enumerable: true enumerable: true
}); });
App?.Utils?.passageHistoryCleanup(); App?.Utils?.passageHistoryCleanup();
App.Art.GenAI.UI.QueueOverlay.toggle(passage() !== "Options");
profileEvents.passagestart(); profileEvents.passagestart();
}); });
......