diff --git a/src/events/nonRandomEvent.js b/src/events/nonRandomEvent.js index 9a03572d6c80eb1ef35ce88ad1e1932c67758a1f..ae60cccd6d6c9bc9ca08b5b9e038fe850e58c893 100644 --- a/src/events/nonRandomEvent.js +++ b/src/events/nonRandomEvent.js @@ -18,9 +18,7 @@ App.Events.getNonrandomEvents = function() { () => (V.slaveRebellion === 1 || V.citizenRebellion === 1) ], "rebellionOptions"), new App.Events.attackOptions(), - new App.Events.TwineEvent().wrapPassage([ - () => V.PC.labor === 1 - ], "SE Player Birth"), + new App.Events.SEPlayerBirth(), new App.Events.SEpcBirthday(), new App.Events.TwineEvent().wrapPassage([ () => V.independenceDay === 1, diff --git a/src/events/scheduled/sePlayerBirth.js b/src/events/scheduled/sePlayerBirth.js new file mode 100644 index 0000000000000000000000000000000000000000..dc7ce53d652f9eb6b47b8c4fc7a7246876a9eeac --- /dev/null +++ b/src/events/scheduled/sePlayerBirth.js @@ -0,0 +1,1266 @@ +App.Events.App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent { + eventPrerequisites() { + return [ + () => V.PC.labor === 1 + ]; + } + + execute(node) { + V.nextButton = "Continue"; + V.nextLink = "Scheduled Event"; + let _gaveBirth = 0; let _PCDegree = 0; let _pregTypeDecrecement = WombReserveCount(V.PC, "incubator"); let _pregTypeDecrecementNursery = WombReserveCount(V.PC, "incubator"); + let _concubinePresent; + + + /* + PC.pregSource documentation + 0 - unknown + -1 - Player - self-impreg + -2 - citizen + -3 - former Master + -4 - male arc owner + -5 - client + -6 - Societal Elite + -7 - designer baby + -9 - Futanari Sister + */ + + /* expand me with new variables to behave like slave birth */ + let _badBirth; + if (V.PC.counter.birthsTotal === 0) { + _badBirth = 30+(V.PC.pregType*4); + } else { + _badBirth = 10; + } + let _wounded = 0; + V.PC.curBabies = WombBirth(V.PC, 35); + let _curBabies = V.PC.curBabies.length; + let _stillBirth = V.PC.womb.length; + let _gender; + if (_curBabies === 1) { + if (V.PC.curBabies[0].genetics.gender === "XX") { + _gender = "XX"; + } else { + _gender = "XY"; + } + } + + /* Difference in code below: + * _curBabies - count of live babies after birth + * V.PC.pregType = all babies in PC. + * I assume that dead fetuses do not count to reputation, etc., and PC manages to hide them. This mainly for future possibilities, or early birth triggers. + * PC will not support partial birth - even if she happens to be pregnant at different stages at once, undeveloped babies will be dead as result. + * _stillBirth currently not used - it's just for future improvements. */ + V.PC.preg = 0, V.PC.pregKnown = 0, V.PC.labor = 0, V.PC.counter.birthsTotal += _curBabies; + + /* setting the tallies for each type of child born */ + let _others = 0; let _self = 0; let _citizens = 0; let _oldMaster = 0; let _arcOwner = 0; let _clients = 0; let _elite = 0; let _lab = 0; let _futaS = 0; let _slavesLength = 0; let _babies = []; + for (let _spb = 0; _spb < V.PC.curBabies.length; _spb++) { + if (V.PC.curBabies[_spb].fatherID === 0) { + _others++; + _babies.push("some guy"); + } else if (V.PC.curBabies[_spb].fatherID === -1) { + _self++; + _babies.push("your own"); + } else if (V.PC.curBabies[_spb].fatherID === -2) { + _citizens++; + _babies.push("an arcology citizen"); + } else if (V.PC.curBabies[_spb].fatherID === -3) { + _oldMaster++; + _babies.push("your Master"); + } else if (V.PC.curBabies[_spb].fatherID === -4) { + _arcOwner++; + _babies.push("another arcology owner"); + } else if (V.PC.curBabies[_spb].fatherID === -5) { + _clients++; + _babies.push("your client"); + } else if (V.PC.curBabies[_spb].fatherID === -6) { + _elite++; + _babies.push("the Societal Elite"); + } else if (V.PC.curBabies[_spb].fatherID === -7) { + _lab++; + _babies.push("designer"); + } else if (V.PC.curBabies[_spb].fatherID === -9) { + _futaS++; + _babies.push("a Futanari Sister"); + } else { + const _babyDaddy = V.slaveIndices[V.PC.curBabies[_spb].fatherID]; + if (_babyDaddy) { + _slavesLength++; + _babies.push(String(V.slaves[_babyDaddy].slaveName)); + } else { + _others++; + _babies.push("some guy"); + } + } + } + const _babiesReduced = removeDuplicates(_babies); + + let r = []; + + if ((_elite > 0 || _self > 0) && V.arcologies[0].FSRestart !== "unset") { /* for simplicity's sake, not going to allow other embryos to be added during an elite pregnancy */ + r.push(`Since you are heavily pregnant with `); + if (_elite + _self >= 2) { + r.push(`children`); + } else { + r.push(`a child`); + } + r.push(` of the Societal Elite, you are quickly taken to the finest clinic the arcology has to offer. After a quick sedation, you awake to find your belly no longer round with child; that, and a note stating your next breeding partner and a notice that ${cashFormat(50000)} has been added to your account. The Societal Elite are <span class="green">very pleased</span> at their new addition to the ranks. You just wish you could have seen your `); + if (_curBabies === 1) { + r.push(`little `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + r.push(` before they took `); + if (_gender === "XX") { + r.push(`her`); + } else { + r.push(`him`); + } + } else { + r.push(`babies before they took them`); + } + r.push(` away to be raised into `); + if (_curBabies > 1) { + r.push(`proper members`); + } else { + r.push(`a proper member`); + } + r.push(` of the future world.`); + V.PC.counter.birthElite += _elite; + if (V.PC.ovaryAge >= 47 && V.playerAging === 2) { + r.push(`You are getting too old to have children; you feel like `); + if (_curBabies > 1) { + r.push(`they`); + } else { + r.push(`this`); + } + r.push(` may be your last.`); + V.PC.preg = -2; + } + } else { + r.push(`While sitting at your desk planning your day, <span class="lime">your water breaks,</span> thoroughly soaking your crotch and the slave servicing it. You `); + if (V.PC.belly >= 60000) { + r.push(`struggle to`); + } + r.push(` pull your laboring body to its feet, notify ${V.assistant.name} that it's time, and begin heading towards`); + if (V.masterSuite !== 0 && V.masterSuiteUpgradePregnancy === 1) { + r.push(`${V.masterSuiteName}, since you had it redesigned to accommodate pregnant slaves. You should be able to give birth in both luxury and privacy there.`); + } else if (V.clinic !== 0) { + r.push(`${V.clinicName}; everything you'll need to give birth can be found there. Although you don't know how much privacy you'll be able to get there.`); + } else if (V.masterSuite !== 0) { + r.push(`${V.masterSuiteName}, since you'd like to be as comfortable as possible for the upcoming birth. You should be able to give birth in relative privacy there.`); + } else { + r.push(`your bed, since you'd like to be as comfortable as possible for the upcoming birth. You should be able to give birth in complete privacy there.`); + } + // <br><br> + if (V.PC.belly < 100000) { + if (S.Concubine) { + _concubinePresent = 1; + // <<setLocalPronouns S.Concubine 2>> + } + r.push(`After what feels like a `); + if (V.showInches === 2) { + r.push(`mile`); + } else { + r.push(`kilometer`); + } + r.push(` run, you finally waddle into your destination finding`); + if (S.Nurse) { + // <<setLocalPronouns S.Nurse>> + r.push(`<span class="pink">${S.Nurse.slaveName}</span> waiting for you with everything ${he} needs to be a capable midwife to you.`); + if (_concubinePresent === 1) { + r.push(` <span class="pink">${S.Concubine.slaveName}</span> `); + if (hasAnyArms(S.Concubine)) { + r.push(`wraps ${_his2} arm`); + if (hasBothArms(S.Concubine)) { + r.push(`s`); + } + r.push(` around`); + } else { + r.push(`leans into`); + } + r.push(` you from behind, letting you know ${_he2}'ll be here to comfort you while you labor.`); + } + } else if (V.BodyguardID !== 0) { + // <<setLocalPronouns S.Bodyguard>> + r.push(`<span class="pink">${S.Bodyguard.slaveName}</span> waiting for you. Ever since ${he} realized ${he} was protecting for `); + if (V.PC.pregType > 1) { + r.push(`many`); + } else { + r.push(`two`); + } + r.push(`, ${he} made sure to hone ${his} skills as a midwife to make sure ${he} could protect you and your unborn child`); + if (V.PC.pregType > 1) { + r.push(`ren`); + } + r.push(` from any dangers.`); + if (_concubinePresent === 1) { + r.push(` <span class="pink">${S.Concubine.slaveName}</span> `); + if (hasAnyArms(S.Concubine)) { + r.push(`wraps ${_his2} arm`); + if (hasBothArms(S.Concubine)) { + r.push(`s`); + } + r.push(` around`); + } else { + r.push(`leans into`); + } + r.push(` you from behind, letting you know ${_he2}'ll be here to comfort you while you labor.`); + } + } else if (V.HeadGirlID !== 0) { + // <<setLocalPronouns S.HeadGirl>> + r.push(`<span class="pink">${S.HeadGirl.slaveName}</span> is waiting for you. ${He} promises to do everything ${he} can to help you.`); + if (_concubinePresent === 1) { + r.push(` <span class="pink">${S.Concubine.slaveName}</span> `); + if (hasAnyArms(S.Concubine)) { + r.push(`wraps ${_his2} arm`); + if (hasBothArms(S.Concubine)) { + r.push(`s`); + } + r.push(` around`); + } else { + r.push(`leans into`); + } + r.push(` you from behind, letting you know ${_he2}'ll be here to comfort you while you labor.`); + } + } else if (_concubinePresent === 1) { + r.push(`<span class="pink">${S.Concubine.slaveName}</span> is waiting for you. ${_He2} believes, if anything, that ${_he2} could at least comfort you while you give birth.`); + } else { + r.push(`it quite empty. At least ${V.assistant.name} knows where you are should anything go wrong.`); + } + } else { + if (S.Concubine) { + // <<setLocalPronouns S.Concubine 2>> + if (!canWalk(S.Concubine)) { + _concubinePresent = 2; + } else { + _concubinePresent = 1; + } + } + r.push(`You barely make it half-way down the hall before you feel the first of your many children drop into position at the entrance to your birth canal. You try to keep going, but as it forces its way through your pelvis, spreading it wider, you're forced to the ground. Fortunately the penthouse is littered with supply rooms and closets, so you drag your laboring body into the nearest one instead. Fortunately, ${V.assistant.name} discretely directs`); + if (S.Nurse) { + // <<setLocalPronouns S.Nurse>> + r.push(`<span class="pink">${S.Nurse.slaveName}</span> to you with everything ${he}'ll need to deliver your child`); + if (V.PC.pregType > 1) { + r.push(`ren`); + } + r.push(`.`); + if (_concubinePresent === 1) { + r.push(` <span class="pink">${S.Concubine.slaveName}</span> bursts in after ${him} and circles around behind you before `); + if (hasAnyArms(S.Concubine)) { + r.push(`wrapping ${_his2} arm`); + if (hasBothArms(S.Concubine)) { + r.push(`s`); + } + r.push(` around`); + } else { + r.push(`nuzzling against`); + } + r.push(` your contraction wracked middle. ${_He2}'ll be here to comfort you while you labor.`); + } + } else if (V.BodyguardID !== 0) { + // <<setLocalPronouns S.Bodyguard>> + r.push(`<span class="pink">${S.Bodyguard.slaveName}</span> to your location. Ever since ${he} realized ${he} was protecting for not only you, but the lives you bear too, ${he} made sure to hone ${his} skills as a midwife to make sure ${he} could protect you and your unborn child`); + if (V.PC.pregType > 1) { + r.push(`ren`); + } + r.push(` from any dangers. ${He} apologizes profusely for not being there when you needed ${him} most; ${he} wanted to make sure everything was ready for your arrival.`); + if (_concubinePresent === 1) { + r.push(` <span class="pink">${S.Concubine.slaveName}</span> bursts in after ${him} and circles around behind you before `); + if (hasAnyArms(S.Concubine)) { + r.push(`wrapping ${_his2} arm`); + if (hasBothArms(S.Concubine)) { + r.push(`s`); + } + r.push(` around`); + } else { + r.push(`nuzzling against`); + } + r.push(` your contraction wracked middle. ${_He2}'ll be here to comfort you while you labor.`); + } + } else if (V.HeadGirlID !== 0) { + // <<setLocalPronouns S.HeadGirl>> + r.push(`<span class="pink">${S.HeadGirl.slaveName}</span> to your location. ${He} promises to do everything ${he} can to help you.`); + if (_concubinePresent === 1) { + r.push(` <span class="pink">${S.Concubine.slaveName}</span> bursts in after ${him} and circles around behind you before `); + if (hasAnyArms(S.Concubine)) { + r.push(`wrapping ${_his2} arm`); + if (hasBothArms(S.Concubine)) { + r.push(`s`); + } + r.push(` around`); + } else { + r.push(`nuzzling against`); + } + r.push(` your contraction wracked middle. ${_He2}'ll be here to comfort you while you labor.`); + } + } else if (_concubinePresent === 1) { + r.push(`<span class="pink">${S.Concubine.slaveName}</span> to your location. ${_He2} believes, if anything, that ${_he2} could at least comfort you while you give birth.`); + } else { + r.push(`a camera on the room you crawled into. At least ${V.assistant.name} knows where you are should anything go wrong.`); + } + } + // <br><br> + r.push(`You arrange yourself to give birth, relaxing until your body urges you to begin bearing down and pushing your child into the world.`); + if (_concubinePresent === 1) { + r.push(`${S.Concubine.slaveName} settles in beside you, one hand soothing your contraction wracked middle and the other `); + if (V.PC.dick !== 0) { + r.push(`stroking your hardening dick`); + } else { + r.push(`teasing your stiffening clit`); + } + r.push(`.`); + } + if (_badBirth > random(1, 100)) { /* shits going wrong */ + if (S.Nurse) { + // <<setLocalPronouns S.Nurse>> + r.push(`You keep pushing and pushing, but your child is not coming out.`); + if (_concubinePresent === 1) { + r.push(` ${S.Concubine.slaveName} shifts to massaging your gravid middle`); + if (canTalk(S.Concubine)) { + r.push(`, while whispering words of encouragement into your ear`); + } + r.push(`. Until ${S.Nurse.slaveName} shoos ${_him2} away so ${he} can take over and get this baby out of you.`); + } + r.push(` ${S.Nurse.slaveName} was prepared for this possibility, adjusts your position and timings, and before long is holding your <span class="lime">new baby `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + r.push(`</span> in ${his} arms.`); + if (V.PC.pregType >= 8) { + r.push(`But you're far from done; your taut dome of a belly still houses another ${num(V.PC.pregType - 1)} infants. You moan as the next child begins its descent; you'll be at this for awhile. If S.Nurse.slaveName weren't here, you and your children would likely have perished.`); + } else if (V.PC.pregType >= 4) { + r.push(`But you aren't close to done; your taut dome of a belly still houses another ${num(V.PC.pregType - 1)} infants. You moan as the next child begins its descent; you'll be at this for awhile. If S.Nurse.slaveName weren't here, you and your children would likely have perished.`); + } else if (V.PC.pregType === 3) { + r.push(`But you aren't done; your swollen belly still houses another pair of infants. You moan as the next child begins its descent; if S.Nurse.slaveName weren't here, you and your children would likely have perished.`); + } else if (V.PC.pregType === 2) { + r.push(`But you aren't done; your rounded belly still houses another infant. You moan as they begin their decent; if S.Nurse.slaveName weren't here, you and your children would likely have perished.`); + } + } else if (V.BodyguardID !== 0) { + // <<setLocalPronouns S.Bodyguard>> + r.push(`You keep pushing and pushing, but your child is not coming out.`); + if (_concubinePresent === 1) { + r.push(` ${S.Concubine.slaveName} shifts to massaging your gravid middle`); + if (canTalk(S.Concubine)) { + r.push(`, while whispering words of encouragement into your ear`); + } + r.push(`. ${_He2} begins to worry as ${_his2} lover weakens in front of ${_him2}. ${S.Bodyguard.slaveName} quickly pulls ${_him2} away from you, fearing the worst.`); + } + r.push(` ${S.Bodyguard.slaveName} read about this possibility and tries everything ${he} can to coax your child out. As time passes, ${he} notices your consciousness begin to fade as exhaustion kicks in. Fearing for your lives, and desperate to save you, ${he} draws ${his} sword from its sheath, hands unsteady from what ${he} is about to do. Carefully, ${he} slits your lower abdomen, allowing your baby-`); + if (V.PC.pregType < 3) { + r.push(`filled`); + } else if (V.PC.pregType < 5) { + r.push(`stuffed`); + } else if (V.PC.pregType < 8) { + r.push(`packed`); + } else { + r.push(`bursting`); + } + r.push(` womb to pop out through the incision. Doing ${his} best, ${he} cuts open your uterus, pulls your child`); + if (V.PC.pregType > 1) { + r.push(`ren`); + } + r.push(` from you and severs the umbilical cord`); + if (V.PC.pregType > 1) { + r.push(`s all at once`); + } + r.push(`.`); + // <br><br> + r.push(`You awake some time later in the remote surgery, your stomach extremely sore; you quickly realize you're no longer round with child. As you try to rise, S.Bodyguard.slaveName stops you; ${he} hefts you into a bridal carry and takes you to a recovery room, before gently placing you into a warm bed, tucking you in, and hurrying out of the room. Before you can call out, ${he} returns carrying`); + if (_curBabies === 1) { + r.push(`<span class="lime">your baby `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + r.push(`</span>`); + } else if (_curBabies < 6) { + r.push(`<span class="lime">your newborn ${pregNumberName(_curBabies, 2)}</span>`); + } else { + r.push(`a big bassinet containing <span class="lime">your newborn pregNumberName(_curBabies, 2)</span>`); + } + r.push(`in ${his} arms.`); + _wounded = 1; + } else if (V.HeadGirlID !== 0) { + // <<setLocalPronouns S.HeadGirl>> + r.push(`You keep pushing and pushing, but your child is not coming out.`); + if (_concubinePresent === 1) { + r.push(`${S.Concubine.slaveName} shifts to massaging your gravid middle`); + if (canTalk(S.Concubine)) { + r.push(`, while whispering words of encouragement into your ear`); + } + r.push(`. ${_He2} begins to worry as ${_his2} lover weakens in front of ${_him2}. ${S.HeadGirl.slaveName} quickly pulls ${_him2} to `); + if (hasBothLegs(S.Concubine)) { + r.push(`${_his2} feet`); + } else { + r.push(`upright`); + } + r.push(` and orders ${_him2} to help ${him} carry you to the remote surgery`); + if (!canWalk(S.Concubine)) { + r.push(`; in ${his} rush, ${he} completely forgot `); + if (tooBigBreasts(S.Concubine)) { + r.push(`${S.Concubine.slaveName}'s breasts have ${_him2} pinned to the bed`); + } else if (tooBigBelly(S.Concubine)) { + r.push(`${S.Concubine.slaveName}'s pregnancy renders ${_him2} immobile`); + } else if (tooBigDick(S.Concubine)) { + r.push(`${S.Concubine.slaveName} can't walk with a dick that big`); + } else if (tooBigButt(S.Concubine)) { + r.push(`${S.Concubine.slaveName}'s butt pins ${_him2} to the bed`); + } else if (tooBigBalls(S.Concubine)) { + r.push(`${S.Concubine.slaveName}'s balls act as a giant anchor`); + } else if (tooFatSlave(S.Concubine)) { + r.push(`${S.Concubine.slaveName} is so fat, the bed is ${_his2} home now`); + } else { + r.push(`${S.Concubine.slaveName} can't walk`); + } + } + r.push(`.`); + } else { + r.push(`S.HeadGirl.slaveName notices your distress and carries you to the remote surgery`); + if (V.PC.pregType >= 8) { + r.push(`, a daunting task given your extreme gravidity`); + } + r.push(`.`); + } + // <br><br> + r.push(`You awake some time later in a recovery room`); + if (_concubinePresent > 0) { + r.push(`, ${S.Concubine.slaveName} beside you`); + } + r.push(`, your stomach extremely sore; a quick glance at the prominent scar tells you everything you need to know. Seeing you're awake, S.HeadGirl.slaveName catches your attention. In ${his} arms`); + if (_curBabies === 1) { + r.push(`is <span class="lime">your baby `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + r.push(`,</span> `); + if (S.HeadGirl.lactation > 0) { + r.push(`happily nursing from ${his} breast,`); + } + } else { + r.push(`are <span class="lime">your newborn ${pregNumberName(_curBabies, 2)},</span> `); + if (S.HeadGirl.lactation > 0) { + r.push(`happily nursing from ${his} breasts,`); + } + } + r.push(`alive and well.`); + _wounded = 1; + } else if (_concubinePresent === 1) { + r.push(`You keep pushing and pushing, but your child is not coming out. `); + if (canWalk(S.Concubine)) { + r.push(`In a panic, ${S.Concubine.slaveName} carries you to the remote surgery`); + } else { + r.push(`The last thing you remember as you fade is ${S.Concubine.slaveName}'s look of panic`); + } + r.push(`.`); + // <br><br> + r.push(`You awake some time later in a recovery room, your stomach extremely sore; a quick glance at the prominent scar tells you everything you need to know. A content sigh comes from beside you; S.Concubine.slaveName is snuggled next to you, snoozing with`); + if (_curBabies === 1) { + r.push(`<span class="lime">your baby `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + r.push(`</span> in ${_his2} arms.`); + if (S.Concubine.lactation > 0) { + r.push(` Your child has managed to free one of ${S.Concubine.slaveName}'s breasts and is eagerly suckling from its milky nipple.`); + } + } else { + r.push(`<span class="lime">your newborn ${pregNumberName(_curBabies, 2)}</span> in ${_his2} arms.`); + if (S.Concubine.lactation > 0) { + r.push(` Your children have managed to free ${S.Concubine.slaveName}'s breasts and are eagerly suckling from their milky nipples.`); + } + } + if (!canWalk(S.Concubine)) { + if (tooBigBreasts(S.Concubine)) { + r.push(`You don't know how ${_he2} managed to get you here when ${_his2} breasts prevent ${_him2} from walking`); + if (V.PC.pregType >= 8) { + r.push(`, especially with how heavy your pregnancy was`); + } + r.push(`, but you give the pair a gentle caress as thanks.`); + } else if (tooBigBelly(S.Concubine)) { + r.push(`You don't know how ${_he2} managed to get you here when ${_he2}'s so gravid ${_he2} can't walk`); + if (V.PC.pregType >= 8) { + r.push(`, especially with how heavy your pregnancy was`); + } + r.push(`, but you give the taut dome a gentle caress as thanks.`); + } else if (tooBigDick(S.Concubine)) { + r.push(`You don't know how ${_he2} managed to get you here when ${_his2} dick prevents ${_him2} from walking`); + if (V.PC.pregType >= 8) { + r.push(`, especially with how heavy your pregnancy was`); + } + r.push(`, but you give the serpent a gentle caress as thanks.`); + } else if (tooBigButt(S.Concubine)) { + r.push(`You don't know how ${_he2} managed to get you here when ${_his2} ass prevent ${_him2} from walking`); + if (V.PC.pregType >= 8) { + r.push(`, especially with how heavy your pregnancy was`); + } + r.push(`, but you give the jiggling giant a gentle caress as thanks.`); + } else if (tooBigBalls(S.Concubine)) { + r.push(`You don't know how ${_he2} managed to get you here when ${_his2} balls prevent ${_him2} from walking`); + if (V.PC.pregType >= 8) { + r.push(`, especially with how heavy your pregnancy was`); + } + r.push(`, but you give the pair a gentle caress as thanks. ${_He2} returns the kindness with a shudder and a large wet spot forming over ${_his2} crotch.`); + } else if (tooFatSlave(S.Concubine)) { + r.push(`You don't know how ${_he2} managed to get you here when ${_he2}'s so fat ${_he2} can't walk`); + if (V.PC.pregType >= 8) { + r.push(`, especially with how heavy your pregnancy was`); + } + r.push(`, but you give ${_his2} soft body a gentle caress as thanks.`); + } else if (!hasAnyLegs(S.Concubine)) { + r.push(`You don't know how ${_he2} managed to get you here when ${_he2} has no legs to walk on`); + if (V.PC.pregType >= 8) { + r.push(`, especially with how heavy your pregnancy was`); + } + r.push(`, but you give ${_his2} stumps a gentle caress as thanks.`); + } else { + r.push(`You don't know how ${_he2} managed to get you here, since ${_he2} can't walk`); + if (V.PC.pregType >= 8) { + r.push(`, especially with how heavy your pregnancy was`); + } + r.push(`, but you're thankful either way.`); + } + } + _wounded = 1; + } else { + r.push(`You keep pushing and pushing, but your child is not coming out. <span class="red">Something is wrong,</span> but you keep persisting.`); + _gaveBirth = 1; + V.gameover = "birth complications", V.nextButton = "Have to keep trying!", V.nextLink = "Gameover"; + } + } else { + if (S.Nurse) { + // <<setLocalPronouns S.Nurse>> + r.push(`Under ${S.Nurse.slaveName}'s guidance, childbirth is a breeze for you.`); + if (V.PC.pregType === 1) { + if (_concubinePresent === 1) { + r.push(` Or it would have been, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your child entered the world.`); + if (V.PC.balls >= 9) { + r.push(` An orgasm that resulted in ${S.Concubine.slaveName},${S.Nurse.slaveName}, and your newborn getting sprayed with cum.`); + } + } + r.push(` ${S.Nurse.slaveName} cuts the cord, swaddles your child, and hands you <span class="lime">your new baby `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + r.push(`.</span>`); + } else { + if (_concubinePresent === 1) { + r.push(`Or it would have been, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your first child entered the world.`); + if (V.PC.balls >= 9) { + r.push(` An orgasm that resulted in ${S.Concubine.slaveName},${S.Nurse.slaveName}, and your newborn getting sprayed with cum.`); + } + r.push(` But it isn't over: before you've even had a chance to come down from your climax, the next infant slips into your birth canal`); + if (V.PC.pregType >= 3) { + r.push(`, followed closely by the `); + if (V.PC.pregType === 3) { + r.push(`last`); + } else { + r.push(`next`); + } + r.push(`,`); + } + r.push(` and immediately pushes you back over the edge. In minutes, after ${num(_curBabies)} children and ${num(_curBabies)} intense orgasms, you're barely conscious. ${S.Concubine.slaveName} slides in behind you to snuggle with you as you return to your senses.`); + } else { + r.push(`With one out, you realize`); + if (V.PC.pregType >= 6) { + r.push(`you still have ${num(V.PC.pregType - 1)} more to go.`); + } else if (V.PC.pregType === 5) { + r.push(`your taut dome of a belly still houses four more.`); + } else if (V.PC.pregType === 4) { + r.push(`your swollen belly still houses three more.`); + } else if (V.PC.pregType === 3) { + r.push(`your swollen belly still houses another pair.`); + } else if (V.PC.pregType === 2) { + r.push(`your rounded belly still houses another.`); + } + r.push(`You moan as`); + if (V.PC.pregType >= 3) { + r.push(`the next child begins its`); + } else { + r.push(`they begin their`); + } + r.push(`descent; you'll be at this for awhile. With S.Nurse.slaveName around, you aren't worried at all.`); + } + r.push(`${S.Nurse.slaveName} cuts the cords, swaddles your children, and hands you <span class="lime">your new ${pregNumberName(_curBabies, 2)}.</span>`); + } + } else if (V.BodyguardID !== 0) { + // <<setLocalPronouns S.Bodyguard>> + r.push(`With ${S.Bodyguard.slaveName} watching over you, you feel safe enough to let your guard down and focus on giving birth. Once you are relaxed, you feel your child begin to inch down your birth canal. Before long you've completed the job without any trouble.`); + if (V.PC.pregType === 1) { + if (_concubinePresent === 1) { + r.push(`Or it would have, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your child entered the world.`); + if (V.PC.balls >= 9) { + r.push(` An orgasm that resulted in ${S.Concubine.slaveName},${S.Bodyguard.slaveName}, and your newborn getting sprayed with cum.`); + } + } + r.push(`${S.Bodyguard.slaveName} cuts the cord with ${his} blade, and hands you <span class="lime">your new baby `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + r.push(`.</span>`); + } else { + if (_concubinePresent === 1) { + r.push(`Or you would have, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your child entered the world.`); + if (V.PC.balls >= 9) { + r.push(` An orgasm that resulted in ${S.Concubine.slaveName},${S.Bodyguard.slaveName}, and your newborn getting sprayed with cum.`); + } + r.push(` But it isn't over; before you've even had a chance to come down from your climax, the next infant slips into your birth canal`); + if (V.PC.pregType >= 3) { + r.push(`, followed closely by the `); + if (V.PC.pregType === 3) { + r.push(`last`); + } else { + r.push(`next`); + } + r.push(`,`); + } + r.push(` and immediately pushes you back over the edge. In minutes, after ${num(_curBabies)} children and ${num(_curBabies)} intense orgasms, you're barely conscious, nearly panicking ${S.Bodyguard.slaveName}. ${S.Concubine.slaveName} slides in behind you to snuggle with you as you return to your senses.`); + } else { + r.push(`With one out, you realize`); + if (V.PC.pregType >= 6) { + r.push(`you still have ${num(V.PC.pregType - 1)} more to go.`); + } else if (V.PC.pregType === 5) { + r.push(`your taut dome of a belly still houses four more.`); + } else if (V.PC.pregType === 4) { + r.push(`your swollen belly still houses three more.`); + } else if (V.PC.pregType === 3) { + r.push(`your swollen belly still houses another pair.`); + } else if (V.PC.pregType === 2) { + r.push(`your rounded belly still houses another.`); + } + r.push(`You moan as`); + if (V.PC.pregType >= 3) { + r.push(`the next child begins its`); + } else { + r.push(`they begin their`); + } + r.push(`descent; you'll be at this for awhile. With S.Bodyguard.slaveName around, you feel completely safe.`); + } + r.push(`${S.Bodyguard.slaveName} cuts the cords with ${his} blade, and hands you <span class="lime">your new ${pregNumberName(_curBabies, 2)}.</span>`); + } + } else if (V.HeadGirlID !== 0) { + r.push(`With ${S.HeadGirl.slaveName} waiting with everything you need, childbirth goes by without a hitch.`); + if (V.PC.pregType === 1) { + if (_concubinePresent === 1) { + r.push(` Or it would have been, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your child entered the world.`); + if (V.PC.balls >= 9) { + r.push(` An orgasm that resulted in ${S.Concubine.slaveName},${S.HeadGirl.slaveName}, and your newborn getting sprayed with cum.`); + } + } + r.push(` ${S.HeadGirl.slaveName} cuts the cord, swaddles your child, and hands you <span class="lime">your new baby `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + r.push(`.</span>`); + } else { + if (_concubinePresent === 1) { + r.push(`Or it would have been, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your first child entered the world.`); + if (V.PC.balls >= 9) { + r.push(` An orgasm that resulted in ${S.Concubine.slaveName},${S.HeadGirl.slaveName}, and your newborn getting sprayed with cum.`); + } + r.push(` But it isn't over: before you've even had a chance to come down from your climax, the next infant slips into your birth canal`); + if (V.PC.pregType >= 3) { + r.push(`, followed closely by the `); + if (V.PC.pregType === 3) { + r.push(`last`); + } else { + r.push(`next`); + } + r.push(`,`); + } + r.push(` and immediately pushes you back over the edge. In minutes, after ${num(_curBabies)} children and ${num(_curBabies)} intense orgasms, you're barely conscious. ${S.Concubine.slaveName} slides in behind you to snuggle with you as you return to your senses.`); + } else { + r.push(`With one out, you realize`); + if (V.PC.pregType >= 6) { + r.push(`you still have ${num(V.PC.pregType - 1)} more to go.`); + } else if (V.PC.pregType === 5) { + r.push(`your taut dome of a belly still houses four more.`); + } else if (V.PC.pregType === 4) { + r.push(`your swollen belly still houses three more.`); + } else if (V.PC.pregType === 3) { + r.push(`your swollen belly still houses another pair.`); + } else if (V.PC.pregType === 2) { + r.push(`your rounded belly still houses another.`); + } + r.push(`You moan as`); + if (V.PC.pregType >= 3) { + r.push(`the next child begins its`); + } else { + r.push(`they begin their`); + } + r.push(`descent; you'll be at this for awhile. With ${S.HeadGirl.slaveName} around, you know everything is under control.`); + } + r.push(`${S.HeadGirl.slaveName} cuts the cords, swaddles your children, and hands you <span class="lime">your new ${pregNumberName(_curBabies, 2)}.</span>`); + } + } else if (_concubinePresent === 1) { + r.push(`${S.Concubine.slaveName} alternates between calming your nerves and driving your to orgasm. It works fairly well, as your child rapidly enters the world alongside a particularly powerful climax. You reach down and draw <span class="lime">your new baby `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + r.push(`</span> into your arms, while ${S.Concubine.slaveName} shifts to eagerly "clean" your crotch with ${_his2} tongue.`); + if (V.PC.pregType > 1) { + r.push(` ${_His2} over-stimulation of you quickly has ${_him2} licking the crowning head of your second child. ${_He2} diligently works you over until all of your children are born, making sure you are thoroughly exhausted; both from the birth and from ${_his2} ministrations.`); + if (canPenetrate(S.Concubine) && canImpreg(V.PC, S.Concubine)) { + r.push(` ${S.Concubine.slaveName} `); + if (canSee(S.Concubine)) { + r.push(`eyes`); + } else { + r.push(`faces`); + } + r.push(` your spread pussy hungrily as ${_his2} erection bobs with anticipation. But you're too tired right now and ${_he2} realizes it.`); + } + r.push(` ${_He2} helps gather your child`); + if (V.PC.pregType > 1) { + r.push(`ren`); + } + r.push(` to`); + if (S.Concubine.lactation > 0) { + r.push(` ${_his2} and `); + } + r.push(` your breasts with the hope that you'll reward ${_him2} when you recover.`); + } + } else { + r.push(`You keep pushing and pushing, your child slowly working its way from your body. With the last of your strength, you bear down, freeing your child from your body at last. Panting, you gather <span class="lime">your new baby `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + r.push(`</span> `); + if (V.PC.pregType > 1) { + r.push(`as another contraction ushers your next child into your birth canal`); + } else { + r.push(`and drift off into a much deserved rest`); + } + r.push(`.`); + if (V.PC.pregType >= 2) { + r.push(`You struggle to pass the second baby`); + if (V.PC.pregType >= 3) { + r.push(`, knowing full well a third will quickly follow suit`); + if (V.PC.pregType >= 4) { + r.push(` and a fourth after that`); + } + } + r.push(`.`); + if (V.PC.pregType >= 5) { + r.push(`You dread the challenge that will be the fifth one`); + if (V.PC.pregType >= 6) { + r.push(` and worry for your health over the sixth`); + } + r.push(`.`); + } + if (V.PC.pregType >= 7) { + r.push(`You are nearly delirious by the time`); + if (V.PC.pregType >= 8) { + r.push(`it comes to the final ${num(V.PC.pregType - 6)}; your efforts to push them out are falling flat. You're just too tired. With one final push, you feel the first crown then exit your ruined pussy; the second `); + if (V.PC.pregType >= 9) { + r.push(`and the rest follow`); + } else { + r.push(`follows`); + } + r.push(` closely, finally allowing you relief.`); + } else { + r.push(`they are all born; you still look pregnant. It dawns on you as your cervix stretches wide; you forgot one.`); + } + } + r.push(`You are `); + if (V.PC.pregType >= 6) { + r.push(`thoroughly `); + } + r.push(`exhausted by the time you've pushed out your ${pregNumberName(_curBabies, 2)},`); + if (V.PC.pregType >= 8) { + r.push(`unable to even`); + } else { + r.push(`barely able to`); + } + r.push(`gather them to your chest. Fortunately, ${V.assistant.name} calls several devoted slaves to your aid; you're helped to your bed and left to connect with your children.`); + } + } + } + + if (_gaveBirth === 0) { + V.PC.counter.birthOther += _others, V.PC.counter.birthSelf += _self, V.PC.counter.birthCitizen += _citizens, V.PC.counter.birthMaster += _oldMaster, V.PC.counter.birthArcOwner += _arcOwner, V.PC.counter.birthClient += _clients, V.PC.counter.birthElite += _elite, V.PC.counter.birthLab += _lab, V.PC.counter.birthDegenerate += _slavesLength; + + if (_curBabies === 1) { + let _p = 0; + if (V.PC.curBabies[_p].genetics.race === V.PC.origRace) { + _PCDegree++; + } + if (V.PC.curBabies[_p].genetics.hColor === V.PC.hColor) { + _PCDegree++; + } + if (V.PC.curBabies[_p].genetics.skin === V.PC.skin) { + _PCDegree++; + } + if (V.PC.curBabies[_p].genetics.eyeColor === V.PC.eye.origColor) { + _PCDegree++; + } + + r.push(`Your little `); + if (_gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + if (V.PC.pregSource === -1) { + r.push(`looks exactly like you, in fact, the resemblance seems uncanny. Since `); + if (_gender === "XX") { + r.push(`she`); + } else { + r.push(`he`); + } + r.push(` has the exact same genetics as you, `); + if (_gender === "XX") { + r.push(`she`); + } else { + r.push(`he`); + } + r.push(`'ll likely look almost identical to you when `); + if (_gender === "XX") { + r.push(`she`); + } else { + r.push(`he`); + } + r.push(`'s your age.`); + } else if (_PCDegree === 4) { + r.push(`looks just like you; `); + if (_gender === "XX") { + r.push(`she`); + } else { + r.push(`he`); + } + r.push(` will likely grow up to closely resemble yourself.`); + } else if (V.PC.curBabies[_p].genetics.eyeColor === V.PC.eye.origColor) { + r.push(`has your lovely ${V.PC.eye.origColor} eyes.`); + } else if (_PCDegree > 0) { + r.push(`looks a little like you, enough that `); + if (_gender === "XX") { + r.push(`she`); + } else { + r.push(`he`); + } + r.push(`'ll be recognizable as yours.`); + } else { + r.push(`looks nothing like you; it's hard to believe `); + if (_gender === "XX") { + r.push(`she's your daughter`); + } else { + r.push(`he's you son`); + } + } + + if (V.PC.curBabies[0].reserve === "incubator") { + r.push(`<span class="pink">You set `); + if (_gender === "XX") { + r.push(`her`); + } else { + r.push(`him`); + } + r.push(` aside for incubation.</span>`); + if (V.incubator.tanks.length < V.incubator.capacity) { + App.Facilities.Incubator.newChild(generateChild(V.PC, V.PC.curBabies[0], true)); + } + } else if (V.PC.curBabies[0].reserve === "nursery") { + r.push(`<span class="pink">You set `); + if (_gender === "XX") { + r.push(`her`); + } else { + r.push(`him`); + } + r.push(` aside for incubation.</span>`); + if (V.cribs.length < V.nursery) { + App.Facilities.Nursery.newChild(generateChild(V.PC, V.PC.curBabies[0])); + } + } + V.PC.curBabies.shift(); + } else if (_curBabies > 1) { + let _firstChild = 1; + for (let _p = 0; _p < _curBabies; _p++) { + _PCDegree = 0; + if (V.PC.curBabies[0].genetics.race === V.PC.origRace) { + _PCDegree++; + } + if (V.PC.curBabies[_p].genetics.hColor === V.PC.hColor) { + _PCDegree++; + } + if (V.PC.curBabies[_p].genetics.skin === V.PC.skin) { + _PCDegree++; + } + if (V.PC.curBabies[_p].genetics.eyeColor === V.PC.eye.origColor) { + _PCDegree++; + } + + if (_firstChild === 1) { + r.push(`Your first`); + _firstChild = 0; + } else { + r.push(`The next`); + } + r.push(`little `); + if (V.PC.curBabies[_p].genetics.gender === "XX") { + r.push(`girl`); + } else { + r.push(`boy`); + } + if (_identicalChildGen === 1) { + r.push(`looks exactly like the previous; they're identical twins.`); + } else if (V.PC.pregSource === -1) { + r.push(`looks exactly like you`); + if (_p === 0) { + r.push(`, in fact, the resemblance seems uncanny. Since `); + if (V.PC.curBabies[_p].genetics.gender === "XX") { + r.push(`she`); + } else { + r.push(`he`); + } + r.push(` has the exact same genetics as you, `); + if (V.PC.curBabies[_p].genetics.gender === "XX") { + r.push(`she`); + } else { + r.push(`he`); + } + r.push(`'ll likely look almost identical to you when `); + if (V.PC.curBabies[_p].genetics.gender === "XX") { + r.push(`she`); + } else { + r.push(`he`); + } + r.push(`'s your age`); + } + r.push(`. Every one of your children look this way; it's kind of hard to tell them apart.`); + } else if (_PCDegree === 4) { + r.push(`looks just like you; `); + if (V.PC.curBabies[_p].genetics.gender === "XX") { + r.push(`she`); + } else { + r.push(`he`); + } + r.push(` will likely grow up to closely resemble yourself.`); + } else if (V.PC.curBabies[_p].genetics.eyeColor === V.PC.eye.origColor) { + r.push(`has your lovely ${V.PC.eye.origColor} eyes.`); + } else if (_PCDegree > 0) { + r.push(`looks a little like you, enough that `); + if (V.PC.curBabies[_p].genetics.gender === "XX") { + r.push(`she`); + } else { + r.push(`he`); + } + r.push(`'ll be recognizable as yours.`); + } else { + r.push(`looks nothing like you; it's hard to believe `); + if (V.PC.curBabies[_p].genetics.gender === "XX") { + r.push(`she's your daughter`); + } else { + r.push(`he's your son`); + } + } + if (V.PC.curBabies[_p].reserve === "incubator") { + r.push(`<span class="pink">You set `); + if (V.PC.curBabies[_p].genetics.gender === "XX") { + r.push(`her`); + } else { + r.push(`him`); + } + r.push(` aside for incubation.</span>`); + if (V.incubator.tanks.length < V.incubator.capacity) { + App.Facilities.Incubator.newChild(generateChild(V.PC, V.PC.curBabies[_p], true)); + } + V.PC.curBabies.splice(V.PC.curBabies[_p], 1); + _p--, _curBabies--; + } else if (V.PC.curBabies[_p].reserve === "nursery") { + r.push(`<span class="pink">You set `); + if (V.PC.curBabies[_p].genetics.gender === "XX") { + r.push(`her`); + } else { + r.push(`him`); + } + r.push(` aside to be raised in the penthouse.</span>`); + if (V.cribs.length < V.nursery) { + App.Facilities.Nursery.newChild(generateChild(V.PC, V.PC.curBabies[_p])); + } + V.PC.curBabies.splice(V.PC.curBabies[_p], 1); + _p--, _curBabies--; + } + } + + r.push(`All in all, you've bought a healthy group of`); + if (_babiesReduced.length > 2) { + for (let _spb = 0; _spb < _babiesReduced.length; _spb++) { + if (_spb < _babiesReduced.length-1) { + r.push(`${_babiesReduced[_spb]},`); + } else { + r.push(`and${_babiesReduced[_spb]}'s`); + } + } + } else if (_babiesReduced.length > 1) { + r.push(`${_babiesReduced[0]} and ${_babiesReduced[1]}'s`); + } else { + r.push(_babiesReduced[0]); + if (_babiesReduced[0] !== "your own" && _babiesReduced[0] !== "designer") { + r.push(`'s`); + } + } + r.push(`babies into the world.`); + } + + + if (V.PC.pregSource > 0 && _curBabies > 0) { + let _pb = findFather(V.PC.pregSource); + if (_pb) { + if (V.arcologies[0].FSRestartDecoration === 100 && V.eugenicsFullControl !== 1) { + r.push(`Word spreads fast through your peers that you gave birth to `); + if (_curBabies > 1) { + r.push(`low class infants`); + } else { + r.push(`a low class child`); + } + r.push(` <span class="red">utterly devastating your standing among the Elite.</span>`); + V.failedElite += 200; + } else if (V.arcologies[0].FSChattelReligionistLaw === 1) { + r.push(`Rumors spread that The Prophet gave birth to a slave's child`); + if (_curBabies > 1) { + r.push(`ren`); + } + r.push(`.`); + if (V.arcologies[0].FSSupremacist !== "unset") { + if (_pb.race !== V.arcologies[0].FSSupremacistRace) { + r.push(`Word is that your child`); + if (_curBabies > 1) { + r.push(`ren were`); + } else { + r.push(` was`); + } + r.push(` not ${V.arcologies[0].FSSupremacistRace}. As The Prophet saw fit to bear such a child, society views it as a sign to <span class="red">reject V.arcologies[0].FSSupremacistRace supremacy.</span>`); + V.arcologies[0].FSSupremacist -= 120; + } + } + if (V.arcologies[0].FSSubjugationist !== "unset") { + if (_pb.race === V.arcologies[0].FSSubjugationistRace) { + r.push(`In addition, The Prophet's womb bore `); + if (_curBabies === 1) { + r.push(`a `); + } + r.push(`${V.arcologies[0].FSSubjugationistRace} child`); + if (_curBabies > 1) { + r.push(`ren`); + } + r.push(`, surely a sign to <span class="red">reject ${V.arcologies[0].FSSubjugationistRace} subjugation.</span>`); + V.arcologies[0].FSSubjugationist -= 120; + } + } + } else { + r.push(`Rumors spread that your child`); + if (_curBabies > 1) { + r.push(`ren were`); + } else { + r.push(` was`); + } + r.push(` fathered by a slave, <span class="red">harming your lasting reputation.</span>`); + V.PC.degeneracy += 20; + if (V.arcologies[0].FSSupremacist !== "unset") { + if (_pb.race !== V.arcologies[0].FSSupremacistRace) { + r.push(`Furthermore, word is that your child`); + if (_curBabies > 1) { + r.push(`ren were`); + } else { + r.push(` was`); + } + r.push(` not ${V.arcologies[0].FSSupremacistRace}, <span class="red">further hurting your lasting reputation.</span>`); + V.PC.degeneracy += 10; + } + } + if (V.arcologies[0].FSSubjugationist !== "unset") { + if (_pb.race === V.arcologies[0].FSSubjugationistRace) { + r.push(`In addition, there is a nasty rumor that you gave birth to `); + if (_curBabies === 1) { + r.push(`a `); + } + r.push(`${V.arcologies[0].FSSubjugationistRace} child`); + if (_curBabies > 1) { + r.push(`ren`); + } + r.push(`, <span class="red">devastating your lasting reputation.</span>`); + V.PC.degeneracy += 50; + } + } + } + } + } + + /* -------------------- Now curBabies counts live, birthed babies who haven't been placed in the incubator. */ + _curBabies = V.PC.curBabies.length; + + if (_curBabies > 0) { + // <br><br> + r.push(`Now you are faced with a decision of what to do with your `); + if (_pregTypeDecrecement > 0) { + r.push(`remaining`); + } else { + r.push(`new`); + } + r.push(` child`); + if (_curBabies > 1) { + r.push(`ren`); + } + r.push(`. You're far too busy to keep `); + if (_curBabies > 1) { + r.push(`them`); + } else { + r.push(`it`); + } + r.push(` yourself, but you could <span class="orange">send them to a boarding school to be raised until they are of age to serve as your heir.</span> Other options include sending them to <span class="orange">become a slave at a slave orphanage,</span> sending them to <span class="orange">a citizen school,</span> to be brought up coequal with the arcology's other young people, or sending them to be <span class="orange">raised privately,</span> with expert care and tutoring.`); + if (V.arcologies[0].FSRepopulationFocus > 40) { + r.push(`Of course, there are also the <span class="orange">breeding schools,</span> where your`); + if (_curBabies === 1) { + if (_gender === "XX") { + r.push(`daughter will be taught the joys of motherhood up until she is around `); + if (V.minimumSlaveAge > V.fertilityAge) { + r.push(`${V.minimumSlaveAge}`); + } else { + r.push(`${V.fertilityAge}`); + } + r.push(` years old, when she will be impregnated with her first child.`); + } else { + r.push(`son will be taught it is his duty to fuck every slavegirl he sees without a baby bump pregnant.`); + } + } else { + if (_gender === "XX") { + r.push(`daughters will be taught the joys of motherhood up until they are around `); + if (V.minimumSlaveAge > V.fertilityAge) { + r.push(`${V.minimumSlaveAge}`); + } else { + r.push(`${V.fertilityAge}`); + } + r.push(` years old, when they will be impregnated for the first time.`); + if (_curBabies > 1) { + r.push(` They say multiples run in families, so your daughters should blossom into quite the fertile breeders.`); + } + } else { + r.push(`sons will be taught it is their duty to fuck every slavegirl they see without a baby bump pregnant.`); + } + } + } + if (V.policies.cash4Babies === 1) { + const _seed = random(1, 10); + r.push(`Alternatively, since it is <span class="orange">legal to sell slave babies,</span> your child should be worth quite a pretty ¤ at auction.`); + } + if (((V.eliteFail > 0 || V.eugenicsFullControl > 0) && V.PC.pregSource === -1) || V.PC.pregSource === -6) { + r.push(`The Societal Elite should look forward <span class="orange">to raising them.</span>`); + } + if (V.PC.pregSource === -9) { + r.push(`The Futanari Sisters would happily <span class="orange">take them in.</span>`); + } + // <br><br> + // <span id="choice">What will it be? + // <br> + // <<link "Boarding School">> + // <<replace "#choice">> + "You have decided to send them away to be raised in your stead."; + // <</replace>> + // <</link>> + r.push(` |link "Slave Orphanage">> + //<<replace "#choice">> + V."You have decided to send them to a slave orphanage to be raised to V.minimumSlaveAge and sold. Perhaps you'll even see them again, though you are unlikely to recognize them if you do." + //<</replace>> + V.slaveOrphanageTotal += _curBabies; + //<</link>> + r.push(` |`); + //<<link "Citizen School">> + //<<replace "#choice">> + V."You have decided to send them to a citizen school to become a future citizen. Perhaps you'll even see them again, though you are unlikely to recognize them if you do." + //<</replace>> + V.citizenOrphanageTotal += _curBabies; + //<</link |`); + // <<link "Privately Raised">> + // <<replace "#choice">> + "You have decided to send them to be privately raised. Perhaps you'll even see them again, though it's unlikely that there will be any connection between you. At least you'll know they've been properly reared."; + // <</replace>> + V.privateOrphanageTotal += _curBabies; + // <</link>> + if (V.arcologies[0].FSRepopulationFocus > 40) { + // | <<link "Breeding School">> + // <<replace "#choice">> + "You have decided to send them to be raised into a proper breeder. Perhaps you'll even see them again, though it's unlikely you'll recognize them with their reproduction focused body."; + // <</replace>> + V.breederOrphanageTotal += _curBabies; + // <</link>> + } + if (V.policies.cash4Babies === 1) { + // | <<link "Auction Them">> + // <<replace "#choice">> + // <<print "You send the child + if (_curBabies > 1) { + r.push(`ren`); + } + r.push(` to be sold at auction amongst other prestigious slaves. The winning bid for your offspring came in at <span class="yellowgreen">${cashFormat(1000*_seed*_curBabies)}.</span>">>`); + // <</replace>> + cashX((1000*_seed*_curBabies), "babyTransfer"); + // <</link>> + } + if (((V.eliteFail > 0 || V.eugenicsFullControl > 0) && V.PC.pregSource === -1) || V.PC.pregSource === -6) { + // | <<link "Societal Elite">> + // <<replace "#choice">> + // <<print "You have decided to gift them to the Societal Elite to be raised as + if (_curBabies > 1) { + r.push(`proper members`); + } else { + r.push(`a proper member`); + } + r.push(` of the future world.">>`); + // <</replace>> + // <</link>> + } + if (V.PC.pregSource === -9) { + // | <<link "Futanari Sisters">> + // <<replace "#choice">> + "You have decided to gift them to the Futanari Sisters to be raised to join them. They are more than happy to cover all the expenses for the gift you gave them — especially after they gave you a gift in return."; + // <</replace>> + // <</link>> + } + // </span> + } + + if (V.PC.ovaryAge >= 47 && V.playerAging === 2) { + // <br> + r.push(`You are getting too old to have children; you feel like this may be your last.`); + V.PC.preg = -2; + } + + if (_wounded === 1) { + r.push(`Things didn't quite go as planned, leaving you <span class="health.dec">weak and wounded.</span> You'll need a couple weeks to recover from the ordeal before you're back on your feet.`); + healthDamage(V.PC, 40); + } + }/* closes gaveBirth*/ + }/* closes SE*/ + + /* belly sag is a thing now, USE IT! */ + _badBirth = 0, WombFlush(V.PC); + if (V.PC.geneticQuirks.fertility+V.PC.geneticQuirks.hyperFertility >= 4) { + V.PC.pregWeek = -2; + } else if (V.PC.geneticQuirks.hyperFertility === 2) { + V.PC.pregWeek = -3; + } else { + V.PC.pregWeek = -4; + } + V.PC.belly = getPregBellySize(V.PC); + delete V.PC.curBabies; + } +};