From 6dab0ff0aaffb8e434519c221326d4e5aeeb7bcb Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Fri, 9 Jun 2023 01:20:46 -0400
Subject: [PATCH] add birth scenes

---
 src/js/birth/birth.js | 154 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 154 insertions(+)

diff --git a/src/js/birth/birth.js b/src/js/birth/birth.js
index 6f228bc8edb..ba9f403d81f 100644
--- a/src/js/birth/birth.js
+++ b/src/js/birth/birth.js
@@ -3992,6 +3992,53 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false, artRen
 			// add extra events here (moving between jobs | after work)
 			if (getPersonalAttention(slave.ID, "torture") && !onBedRest(V.PC, true)) {
 				r.push(`${He}'s given birth during your torture sessions enough times for you to start making games of it; perhaps you see how hard you can hit ${him} before you cause ${his} water to break, or maybe you try to break it yourself. The best part is, no matter how many come out of ${him}, ${he} never loses that exploitable baby bump.`);
+			} else if (getPersonalAttention(slave.ID, "ravish") && !onBedRest(V.PC, true)) {
+				if (random(1, 20) > suddenBirth) {
+					r.push(`You take a break from fucking ${him} to allow ${him} time to birth ${his} ${firstText} baby. Once the child is sent off, you conclude your break and go back to fucking ${his}`);
+					if (canDoVaginal(slave)) {
+						if (slave.mpreg === 0) {
+							r.push(`sore, gaping`);
+						}
+						r.push(`pussy`);
+					} else {
+						if (slave.mpreg === 1) {
+							r.push(`sore, gaping buttpussy`);
+						} else {
+							r.push(`anus`);
+						}
+					}
+					r.push(`while caressing the turgid swell of ${his}, still very baby-filled, middle.`);
+				} else {
+					if (canDoVaginal(slave) && slave.mpreg === 0) {
+						r.push(`You groan in displeasure as you feel the head of ${firstText} baby begins to steadily edge you out of ${his} pussy. You sigh and resort to masturbating until the brat is fully born and sent away so you can get back to fucking ${his} turgid body until you inevitably send ${him} back into labor and this all repeats again.`);
+					} else if (canDoVaginal(slave)) {
+						if (canPenetrate(V.PC) || V.PC.clit >= 3) {
+							r.push(`You moan with pleasure as the pressure of ${firstText} baby moving through ${his} rectum pushes down against your ${V.PC.clit >= 3 ? "clit" : "dick"} making everything feel so wonderfully tight. In fact, maybe too tight; you struggle to extract yourself from the clenching orifice before you find your tool painfully crushed. With a stimulating pop, you pull out just as ${his} baby slips from ${his} rectum, climaxing in the`);
+							if (isVirile(V.PC)) {
+								r.push(`process and christening it in a shower of cum.`);
+							} else {
+								r.push(`process.`);
+							}
+							r.push(`Once ${he}'s cleaned up and the baby is taken care of, you bend ${him} back over, caressing the turgid swell of ${his} still baby-filled middle in the process, and carry on fucking ${him}.`);
+						} else {
+							r.push(`You grunt in displeasure as the pressure of ${firstText} baby moving through ${his} rectum pushes down on your strap-on and traps it in place. You try to wiggle it loose, but it just won't budge. You sigh and catch ${his} baby as it pops out of ${his} butthole before handing it off and evaluating just how crushed your favorite toy is.`);
+						}
+					} else if (canDoAnal(slave) && slave.mpreg === 1) {
+						r.push(`You groan in displeasure as you feel the head of ${firstText} baby begins to steadily blockade ${his} anus from your penetration. You sigh and resort to masturbating until the brat is fully born and sent away so you can get back to fucking ${his} turgid body until you inevitably send ${him} back into labor and this all repeats again.`);
+					} else {
+						if (canPenetrate(V.PC) || V.PC.clit >= 3) {
+							r.push(`You moan with pleasure as the pressure of ${firstText} baby being born forces ${his} rectum to tighten around your ${V.PC.clit >= 3 ? "clit" : "dick"}. It quickly becomes way too tight; you struggle to dislodge yourself from the clenching orifice before you get completely crushed. With a stimulating pop, you pull out just as ${his} baby slips from ${his} pussy, climaxing in the`);
+							if (isVirile(V.PC)) {
+								r.push(`process and christening it in a shower of cum.`);
+							} else {
+								r.push(`process.`);
+							}
+							r.push(`Once ${he}'s cleaned up and the baby is taken care of, you bend ${him} back over, caressing the turgid swell of ${his} still baby-filled middle in the process, and carry on fucking ${him}.`);
+						} else {
+							r.push(`You grunt in displeasure as the pressure of ${firstText} baby moving through ${his} birth canal pushes down on your strap-on and traps it in place. You try to wiggle it loose, but it just won't budge. You sigh and catch ${his} baby as it pops out of ${his} vagina before handing it off and evaluating just how crushed your favorite toy is.`);
+						}
+					}
+				}
 			} else if (!canWalk(slave)) {
 				if (slave.fetish === Fetish.MINDBROKEN) {
 					if (random(1, 20) > suddenBirth) {
@@ -4904,6 +4951,53 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false, artRen
 			// add extra events here (moving between jobs | after work)
 			if (getPersonalAttention(slave.ID, "torture") && !onBedRest(V.PC, true)) {
 				r.push(`${He}'s given birth during your torture sessions enough times for you to start making games of it; perhaps you see how hard you can hit ${him} before you cause ${his} water to break, or maybe you try to break it yourself. If you time it right, it's even possible to force ${him} to pop out two babies at once! The best part is, no matter how many come out of ${him}, ${he} never loses the huge target that is ${his} gravid middle.`);
+			} else if (getPersonalAttention(slave.ID, "ravish") && !onBedRest(V.PC, true)) {
+				if (random(1, 20) > suddenBirth) {
+				r.push(`The constant fucking has a bad habit of sending ${him} into labor, forcing you to stop and allow ${him} a moment to pop out the child. Once it is sent off, you conclude your break and go back to fucking ${his}`);
+					if (canDoVaginal(slave)) {
+						if (slave.mpreg === 0) {
+							r.push(`sore, gaping`);
+						}
+						r.push(`pussy`);
+					} else {
+						if (slave.mpreg === 1) {
+							r.push(`sore, gaping buttpussy`);
+						} else {
+							r.push(`anus`);
+						}
+					}
+					r.push(`while enjoying the agitated movements emanating from ${his} brood trapped beneath you.`);
+				} else {
+					if (canDoVaginal(slave) && slave.mpreg === 0) {
+						r.push(`You groan in displeasure as you feel yourself starting to be edged out of ${his} pussy by another of ${his} brood being born. You sigh and resort to masturbating until the brat is fully born and sent away so you can get back to fucking ${his} baby-stuffed body until you inevitably send ${him} back into labor and this all repeats again.`);
+					} else if (canDoVaginal(slave)) {
+						if (canPenetrate(V.PC) || V.PC.clit >= 3) {
+							r.push(`You moan with pleasure at the pressure of another of ${his} brood begining to move through ${his} rectum. The feeling of it pushing down against your ${V.PC.clit >= 3 ? "clit" : "dick"} makes everything feel so wonderfully tight. In fact, maybe too tight; you struggle to extract yourself from the clenching orifice before you find your tool painfully crushed. With a stimulating pop, you pull out just as ${his} baby slips from ${his} rectum, climaxing in the`);
+							if (isVirile(V.PC)) {
+								r.push(`process and christening it in a shower of cum.`);
+							} else {
+								r.push(`process.`);
+							}
+							r.push(`Once the baby is taken care of, you bend ${him} back over ${his} massive belly and carry on fucking ${him} in the hopes of triggering another baby to be born.`);
+						} else {
+							r.push(`You grunt in displeasure as the pressure of another of ${his} brood slipping into ${his} rectum traps your strap-on in place. You try to wiggle it loose, but it just won't budge. You sigh and catch the baby as it pops out of ${his} butthole before handing it off and evaluating just how crushed your favorite toy is.`);
+						}
+					} else if (canDoAnal(slave) && slave.mpreg === 1) {
+						r.push(`You groan in displeasure as you feel yourself blocked out of ${his} anus by the crowning head of another of ${his} brood. You sigh and resort to masturbating until the brat is fully born and sent away so you can get back to fucking ${his} baby-stuffed body until you inevitably send ${him} back into labor and this all repeats again.`);
+					} else {
+						if (canPenetrate(V.PC) || V.PC.clit >= 3) {
+							r.push(`You moan with pleasure as the pressure of another of ${his} brood slipping into ${his} birth canal forces ${his} rectum to tighten around your ${V.PC.clit >= 3 ? "clit" : "dick"}. It quickly becomes way too tight; you struggle to dislodge yourself from the clenching orifice before you get completely crushed. With a stimulating pop, you pull out just as ${his} baby slips from ${his} pussy, climaxing in the`);
+							if (isVirile(V.PC)) {
+								r.push(`process and christening it in a shower of cum.`);
+							} else {
+								r.push(`process.`);
+							}
+							r.push(`Once the baby is taken care of, you bend ${him} back over ${his} massive belly and carry on fucking ${him} in the hopes of triggering another baby to be born.`);
+						} else {
+							r.push(`You grunt in displeasure as the pressure of another of ${his} brood slipping into ${his} birth canal pushes down on your strap-on and traps it in place. You try to wiggle it loose, but it just won't budge. You sigh and catch ${his} baby as it pops out of ${his} pussy before handing it off and evaluating just how crushed your favorite toy is.`);
+						}
+					}
+				}
 			} else if (!canWalk(slave)) {
 				if (slave.fetish === Fetish.MINDBROKEN) {
 					r.push(`While stroking ${his} pregnancy absentmindedly, ${slave.slaveName}'s body begins to birth another of ${his} brood. ${He} carries on until the contractions drag ${him} onto ${his} swollen belly.`);
@@ -5038,6 +5132,21 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false, artRen
 			}
 		} else if (getPersonalAttention(slave.ID, "torture") && !onBedRest(V.PC, true) && random(1, 100) > 50) {
 			r.push(`A little thing like childbirth isn't going to stop you from beating ${him}, however, so you focus your efforts on timing your strikes in-between ${his} contractions, never truly giving ${his} body a chance to rest. You keep at it until ${his} belly is fully deflated and ${his} ${newborns} collected, and once they are, try to find just how much of a gut-punch it takes to dislodge a placenta.`);
+		} else if (getPersonalAttention(slave.ID, "ravish") && !onBedRest(V.PC, true) && random(1, 100) > 50) {
+			r.push(`With contractions underway, you take a break from fucking ${him} to allow ${him} the time ${he} needs to birth ${his} ${children}. Once they are sent off and ${he} is cleaned up, you get right back to fucking ${his}`);
+			if (canDoVaginal(slave)) {
+				if (slave.mpreg === 0) {
+					r.push(`sore`);
+				}
+				r.push(`pussy`);
+			} else {
+				if (slave.mpreg === 1) {
+					r.push(`sore`);
+				} else {
+					r.push(`anus`);
+				}
+			}
+			r.push(`despite ${his} need for rest.`);
 		} else {
 			const animals = [];
 
@@ -5713,6 +5822,21 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false, artRen
 				}
 				r.push(`set up on the operating table. ${He} is quickly sedated and subjected to a c-section in order to avoid potential problems. The surgery is quick and ${he} is moved to a bed to recover. When ${he} awakes, ${his} ${slave.pregType > 1 ? `children have` : `child has`} already been taking away.`);
 			}
+		} else if (getPersonalAttention(slave.ID, "ravish") && !onBedRest(V.PC, true) && random(1, 100) > 50) {
+			r.push(`With contractions underway, you take a break from fucking ${him} to help ${him} into a position more suitable to birth ${his} ${children}. Once they are sent off and ${he} is cleaned up, you flip ${him} back over and resume fucking ${his}`);
+			if (canDoVaginal(slave)) {
+				if (slave.mpreg === 0) {
+					r.push(`sore`);
+				}
+				r.push(`pussy`);
+			} else {
+				if (slave.mpreg === 1) {
+					r.push(`sore`);
+				} else {
+					r.push(`anus`);
+				}
+			}
+			r.push(`despite ${his} need for some rest.`);
 		} else {
 			switch (slave.assignment) {
 				case Job.REST:
@@ -6082,6 +6206,36 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false, artRen
 
 		if (getPersonalAttention(slave.ID, "torture") && !onBedRest(V.PC, true) && random(1, 2) === 2) {
 			r.push(`${slave.slaveName} rudely interrupts your torture session by releasing ${his} water all over your office floor. A little thing like childbirth isn't going to stop you from beating ${him}, however, so you focus your efforts on timing your strikes in-between ${his} contractions, never truly giving ${his} body a chance to rest. You keep at it until ${his} belly is fully deflated and ${his} ${newborns} collected, and once they are, try to find just how much of a gut-punch it takes to dislodge a placenta.`);
+		} else if (getPersonalAttention(slave.ID, "ravish") && !onBedRest(V.PC, true) && random(1, 2) === 2) {
+			if (canDoVaginal(slave) && slave.mpreg === 0) {
+				r.push(`You groan in displeasure as you feel a head begin to steadily edge you out of ${his} pussy. You sigh and resort to masturbating over ${his} laboring body until ${he} is emptied of ${children} and you can go back to fucking the still gaping hole.`);
+			} else if (canDoVaginal(slave)) {
+				if (canPenetrate(V.PC) || V.PC.clit >= 3) {
+					r.push(`You moan with pleasure as the pressure of a baby moving through ${his} rectum pushes down against your ${V.PC.clit >= 3 ? "clit" : "dick"} making everything feel so wonderfully tight. In fact, maybe too tight; you struggle to extract yourself from the clenching orifice before you find your tool painfully crushed. With a stimulating pop, you pull out just as the baby begins to crown from ${his} butthole, climaxing in the`);
+					if (isVirile(V.PC)) {
+						r.push(`process and christening it in a shower of cum.`);
+					} else {
+						r.push(`process.`);
+					}
+					r.push(`Once ${he}'s cleaned up and ${his} ${childrenAre} taken care of, you get right back to fucking ${him}.`);
+				} else {
+					r.push(`You grunt in displeasure as the pressure of a baby moving through ${his} rectum pushes down on your strap-on and traps it in place. You try to wiggle it loose, but it just won't budge. You sigh and let ${him} finish giving birth from ${his} butthole before handing the ${children} off and evaluating just how badly ${he} managed to crush your toy.`);
+				}
+			} else if (canDoAnal(slave) && slave.mpreg === 1) {
+				r.push(`You groan in displeasure as you feel a head begin to steadily block passage into ${his} anus. You sigh and resort to masturbating over ${his} laboring body until ${he} is emptied of ${children} and you can go back to fucking the still gaping hole.`);
+			} else {
+				if (canPenetrate(V.PC) || V.PC.clit >= 3) {
+					r.push(`You moan with pleasure as the pressure of a baby being born forces ${his} rectum to tighten around your ${V.PC.clit >= 3 ? "clit" : "dick"}. It quickly becomes way too tight; you struggle to dislodge yourself from the clenching orifice before you get completely crushed. With a stimulating pop, you pull out just as the baby crowns from ${his} pussy, climaxing in the`);
+					if (isVirile(V.PC)) {
+						r.push(`process and christening it in a shower of cum.`);
+					} else {
+						r.push(`process.`);
+					}
+					r.push(`Once ${he}'s cleaned up and ${his} ${childrenAre} taken care of, you get right back to fucking ${him}.`);
+				} else {
+					r.push(`You grunt in displeasure as the pressure of a baby moving through ${his} birth canal pushes down on your strap-on and traps it in place. You try to wiggle it loose, but it just won't budge. You sigh and let ${him} finish giving birth before handing the ${children} off and evaluating just how badly ${he} managed to crush your toy.`);
+				}
+			}
 		} else if (random(1, 2) === 1 && canWalk(slave)) {
 			// at assignment else in halls/etc, only if able to move
 
-- 
GitLab