code:
package classes.Scenes.NPCs.pregnancies
{
	import classes.GlobalFlags.kGAMECLASS;
	import classes.PerkLib;
	import classes.Player;
	import classes.PregnancyStore;
	import classes.Scenes.PregnancyProgression;
	import classes.Scenes.VaginalPregnancy;
	import classes.StatusEffects;
	import classes.internals.GuiOutput;

	/**
	 * Contains pregnancy progression and birth scenes for a Player impregnated by Benoit.
	 */
	public class PlayerBenoitPregnancy implements VaginalPregnancy
	{
		private var output:GuiOutput;
		private var pregnancyProgression:PregnancyProgression;

		/**
		 * Create a new Benoit pregnancy for the player. Registers pregnancy for Benoit.
		 * @param	pregnancyProgression instance used for registering pregnancy scenes
		 * @param	output instance for gui output
		 */
		public function PlayerBenoitPregnancy(pregnancyProgression:PregnancyProgression, output:GuiOutput)
		{
			// needed as an instance variable for refactor test code (detectVaginalBirth)
			this.pregnancyProgression = pregnancyProgression;
			this.output = output;

			pregnancyProgression.registerVaginalPregnancyScene(PregnancyStore.PREGNANCY_PLAYER, PregnancyStore.PREGNANCY_BENOIT, this);
		}

		/**
		 * @inheritDoc
		 */
		public function updateVaginalPregnancy():Boolean
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;
			var displayedUpdate:Boolean = false;

			if (player.pregnancyIncubation === 185) {
				output.text("\nYour belly grumbles as if empty, even though you ate not long ago.  Perhaps with all the exercise you're getting you just need to eat a little bit more.\n");

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 160) {
				output.text("\nYour belly looks a little pudgy");

				if (player.thickness > 60 && player.tone < 40) {
					output.text(" even for you");
				}

				output.text(", maybe you should cut back on all the food you've been consuming lately?\n");

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 140) {
				output.text("\nYour belly is definitely getting bigger, and no matter what you do, you can't seem to stop yourself from eating at the merest twinge of hunger.  The only explanation you can come up with is that you've gotten pregnant during your travels.  Hopefully it won't inconvenience your adventuring.\n");

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 110) {
				output.text("\nYour belly has gotten nice and big, perhaps as big as you remember the bellies of the pregnant women back home being.  The elders always did insist on everyone doing their part to keep the population high enough to sustain the loss of a champion every year.  You give yourself a little hug, getting a surge of happiness from your hormone-addled body.  Pregnancy sure is great!\n");
				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 72) {
				output.text("\nThe huge size of your pregnant belly constantly impedes your movement, but the constant squirming and shaking of your unborn offspring makes you pretty sure you won't have to carry them much longer.  A sense of motherly pride wells up in your breast - you just know you'll have such wonderful babies.");

				if (player.cor < 50) {
					output.text("  You shudder and shake your head, wondering why you're thinking such unusual things.");
				}

				output.text("\n");

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 32 || player.pregnancyIncubation === 64 || player.pregnancyIncubation === 85 || player.pregnancyIncubation === 150) {
				//Increase lactation!
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() >= 1 && player.biggestLactation() < 2) {
					output.text("\nYour breasts feel swollen with all the extra milk they're accumulating.\n");
					player.boostLactation(.5);

					displayedUpdate = true;
				}

				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() > 0 && player.biggestLactation() < 1) {
					output.text("\nDrops of breastmilk escape your nipples as your body prepares for the coming birth.\n");
					player.boostLactation(.5);

					displayedUpdate = true;
				}

				//Lactate if large && not lactating
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() === 0) {
					output.text("\nYou realize your breasts feel full, and occasionally lactate.  It must be due to the pregnancy.\n");
					player.boostLactation(1);

					displayedUpdate = true;
				}

				//Enlarge if too small for lactation
				if (player.biggestTitSize() === 2 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have swollen to C-cups, in light of your coming pregnancy.\n");
					player.growTits(1, 1, false, 3);

					displayedUpdate = true;
				}

				//Enlarge if really small!
				if (player.biggestTitSize() === 1 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have grown to B-cups, likely due to the hormonal changes of your pregnancy.\n");
					player.growTits(1, 1, false, 3);

					displayedUpdate = true;
				}
			}

			if (!incubationReset()) {
				vaginalBirth();
			}

			return displayedUpdate;
		}

		/**
		 * @inheritDoc
		 */
		public function vaginalBirth():void
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;

			if (incubationReset() || player.pregnancyIncubation > 2) {
				return;
			}

			pregnancyProgression.detectVaginalBirth(PregnancyStore.PREGNANCY_BASILISK);

			player.knockUpForce(); //Clear Pregnancy
			pregnancyProgression.giveBirth();
			kGAMECLASS.bazaar.benoit.popOutBenoitEggs();
		}

		private function incubationReset():Boolean {
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;

			if (player.pregnancyIncubation <= 2) {
				if (kGAMECLASS.time.hours !== 5 && kGAMECLASS.time.hours !== 6) {
					player.knockUpForce(player.pregnancyType, 3); //Make sure eggs are only birthed early in the morning
					return true;
				}
			}

			return false;
		}
	}
}


code:
package classes.Scenes.NPCs.pregnancies
{
	import classes.GlobalFlags.kGAMECLASS;
	import classes.Player;
	import classes.PregnancyStore;
	import classes.Scenes.PregnancyProgression;
	import classes.Scenes.VaginalPregnancy;
	import classes.internals.GuiOutput;
	import classes.internals.PregnancyUtils;

	/**
	 * Contains pregnancy progression and birth scenes for a Player impregnated by CORRUPTED WITCH NOT COPIED.
	 */
	public class PlayerCorruptedWitchPregnancy implements VaginalPregnancy
	{
		private var output:GuiOutput;

		/**
		 * Create a new  CORRUPTED WITCH NOT COPIED. pregnancy for the player. Registers pregnancy for  CORRUPTED WITCH NOT COPIED.
		 * @param	pregnancyProgression instance used for registering pregnancy scenes
		 * @param	output instance for gui output
		 */
		public function PlayerCorruptedWitchPregnancy(pregnancyProgression:PregnancyProgression, output:GuiOutput)
		{
			this.output = output;

			pregnancyProgression.registerVaginalPregnancyScene(PregnancyStore.PREGNANCY_PLAYER, PregnancyStore.PREGNANCY_CORRWITCH, this);
		}

		/**
		 * @inheritDoc
		 */
		public function updateVaginalPregnancy():Boolean
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;
			var displayedUpdate:Boolean = false;

			if (player.pregnancyIncubation == 168) {
				output.text("You realize your belly has gotten slightly larger.  Maybe you need to cut back on the strange food.");
				displayedUpdate = true;
			}
			if (player.pregnancyIncubation == 96) {
				output.text("Your distended belly has grown noticably. You're sweating profusely. Whatever is growing inside of you, it's unusually warm.");
				displayedUpdate = true;
			}
			if (player.pregnancyIncubation == 24) {
				output.text("Your belly is as big as it will get. You cradle it every once in a while, eager to bring your child to the world. ");
				displayedUpdate = true;
			}
			if (player.pregnancyIncubation == 168 || player.pregnancyIncubation == 96) {
				//Increase lactation!
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() >= 1 && player.biggestLactation() < 2) {
					output.text("\nYour breasts feel swollen with all the extra milk they're accumulating.  You hope it'll be enough for the coming birth.\n");
					player.boostLactation(.5);
				}
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() > 0 && player.biggestLactation() < 1) {
					output.text("\nDrops of breastmilk escape your nipples as your body prepares for the coming birth.\n");
					player.boostLactation(.5);
				}
				//Lactate if large && not lactating
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() === 0) {
					output.text("\nYou realize your breasts feel full, and occasionally lactate.  It must be due to the pregnancy.\n");
					player.boostLactation(1);
				}
				//Enlarge if too small for lactation
				if (player.biggestTitSize() === 2 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have swollen to C-cups, in light of your coming pregnancy.\n");
					player.growTits(1, 1, false, 3);
				}
				//Enlarge if really small!
				if (player.biggestTitSize() === 1 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have grown to B-cups, likely due to the hormonal changes of your pregnancy.\n");
					player.growTits(1, 1, false, 3);
				}
			}

			return displayedUpdate;
		}

		/**
		 * @inheritDoc
		 */
		public function vaginalBirth():void
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;

			if (kGAMECLASS.prison.prisonLetter.deliverChildWhileInPrison()) {
				return;
			}

			PregnancyUtils.createVaginaIfMissing(output, player);
			kGAMECLASS.volcanicCrag.corruptedSandWitchScene.giveBirthToWitches();

			if (player.hips.rating < 10) {
				player.hips.rating++;
				output.text("\n\nAfter the birth your " + player.armorName + " fits a bit more snugly about your " + player.hipDescript() + ".");
			}

			output.text("\n");
		}
	}
}

license: unknown


code:
package classes.Scenes.NPCs.pregnancies
{
	import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;
	import classes.Player;
	import classes.PregnancyStore;
	import classes.Scenes.PregnancyProgression;
	import classes.Scenes.VaginalPregnancy;
	import classes.internals.GuiOutput;

	/**
	 * Contains pregnancy progression and birth scenes for a Player impregnated by .
	 */
	public class PlayerIzmaPregnancy implements VaginalPregnancy
	{
		private var output:GuiOutput;
		private var pregnancyProgression:PregnancyProgression;

		/**
		 * Create a new ... pregnancy for the player. Registers pregnancy for ... .
		 * @param	pregnancyProgression instance used for registering pregnancy scenes
		 * @param	output instance for gui output
		 */
		public function PlayerIzmaPregnancy(pregnancyProgression:PregnancyProgression, output:GuiOutput)
		{
			// needed as an instance variable for refactor test code (detectVaginalBirth)
			this.pregnancyProgression = pregnancyProgression;
			this.output = output;

			pregnancyProgression.registerVaginalPregnancyScene(PregnancyStore.PREGNANCY_PLAYER, PregnancyStore.PREGNANCY_IZMA, this);
		}

		/**
		 * @inheritDoc
		 */
		public function updateVaginalPregnancy():Boolean
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;
			var displayedUpdate:Boolean = false;

			if (player.pregnancyIncubation === 275) {
				if (kGAMECLASS.flags[kFLAGS.IZMA_FOLLOWER_STATUS] === 1) {
					output.text("\nYou wake up feeling kind of nauseous.  Izma insists that you stay in bed and won't hear a word otherwise, tending to you in your sickened state.  When you finally feel better, she helps you up.  \"You know, " + player.short + "... I think you might be pregnant.\" Izma says, sounding very pleased at the idea. You have to admit, you do seem to have gained some weight...\n");
				}
				else {
					output.text("\nYou wake up feeling bloated, and your belly is actually looking a little puffy. At the same time, though, you have the oddest cravings... you could really go for some fish.\n");
				}

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 250) {
				output.text("\nYour belly is getting more noticeably distended and squirming around.  You are probably pregnant.\n");

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 216) {
				if (kGAMECLASS.flags[kFLAGS.IZMA_FOLLOWER_STATUS] === 1) {
					output.text("\nYour stomach is undeniably swollen now, and you feel thirsty all the time. Izma is always there to bring you water, even anticipating your thirst before you recognize it yourself. She smiles all the time now, and seems to be very pleased with herself.");
				}
				else {
					output.text("\nThere is no question you're pregnant; your belly is getting bigger and for some reason, you feel thirsty ALL the time.");
				}

				output.text("");
				output.text("\n");

				kGAMECLASS.dynStats("spe", -1, "lib", 1, "sen", 1, "lus", 2);

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 180) {
				if (kGAMECLASS.flags[kFLAGS.IZMA_FOLLOWER_STATUS] === 1) {
					output.text("\nThere is no denying your pregnancy, and Izma is head-over-heels with your 'beautifully bountiful new body', as she puts it. She is forever finding an excuse to touch your bulging stomach, and does her best to coax you to rest against her. However, when you do sit against her, she invariably starts getting hard underneath you.\n");
				}
				else {
					output.text("\nThere is no denying your pregnancy.  Your belly bulges and occasionally squirms as your growing offspring shifts position.\n");
				}

				displayedUpdate = true;
			}
			if (player.pregnancyIncubation === 120) {
				if (kGAMECLASS.flags[kFLAGS.IZMA_FOLLOWER_STATUS] === 1) {
					output.text("\nYour stomach is swollen and gravid; you can feel the baby inside you kicking and wriggling. Izma is always on hand now, it seems, and she won't dream of you fetching your own food or picking up anything you've dropped. She's always dropping hints about how you should try going around naked for comfort's sake. While you are unwilling to do so, you find yourself dreaming about sinking into cool, clean water, and take many baths and swims. Whatever is inside you always seems to like it; they get so much more active when you're in the water.\n");
				}
				else {
					output.text("\nYour stomach is swollen and gravid; you can feel the baby inside you kicking and wriggling.  You find yourself dreaming about sinking into cool, clean water, and take many baths and swims. Whatever is inside you always seems to like it; they get so much more active when you're in the water.\n");
				}

				kGAMECLASS.dynStats("spe", -2, "lib", 1, "sen", 1, "lus", 4);

				displayedUpdate = true;
			}
			if (player.pregnancyIncubation === 72) {
				if (kGAMECLASS.flags[kFLAGS.IZMA_FOLLOWER_STATUS] === 1) {
					output.text("\nYou dream of the water, of a life under the waves, where it's cool and wet and you are free. You spend as much time in the river as possible now, the baby inside you kicking and squirming impatiently, eager to be free of the confines of your womb and have much greater depths to swim and play in. Izma makes no secret of her pleasure and informs you that you should deliver soon.\n");
				}
				else {
					output.text("\nYou dream of the water, of a life under the waves, where it's cool and wet and you are free. You spend as much time in the river as possible now, the baby inside you kicking and squirming impatiently, eager to be free of the confines of your womb and have much greater depths to swim and play in.  The time for delivery will probably come soon.\n");
				}

				displayedUpdate = true;
			}
			if (player.pregnancyIncubation === 32 || player.pregnancyIncubation === 64 || player.pregnancyIncubation === 85 || player.pregnancyIncubation === 150) {
				//Increase lactation!
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() >= 1 && player.biggestLactation() < 2) {
					output.text("\nYour breasts feel swollen with all the extra milk they're accumulating.\n");
					player.boostLactation(.5);

					displayedUpdate = true;
				}

				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() > 0 && player.biggestLactation() < 1) {
					output.text("\nDrops of breastmilk escape your nipples as your body prepares for the coming birth.\n");
					player.boostLactation(.5);

					displayedUpdate = true;
				}

				//Lactate if large && not lactating
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() === 0) {
					output.text("\nYou realize your breasts feel full, and occasionally lactate.  It must be due to the pregnancy.\n");
					player.boostLactation(1);

					displayedUpdate = true;
				}

				//Enlarge if too small for lactation
				if (player.biggestTitSize() === 2 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have swollen to C-cups, in light of your coming pregnancy.\n");
					player.growTits(1, 1, false, 3);

					displayedUpdate = true;
				}

				//Enlarge if really small!
				if (player.biggestTitSize() === 1 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have grown to B-cups, likely due to the hormonal changes of your pregnancy.\n");
					player.growTits(1, 1, false, 3);

					displayedUpdate = true;
				}
			}
			output.text("\n");

			return displayedUpdate;
		}

		/**
		 * @inheritDoc
		 */
		public function vaginalBirth():void
		{
			pregnancyProgression.detectVaginalBirth(PregnancyStore.PREGNANCY_IZMA);
			kGAMECLASS.izmaScene.pcPopsOutASharkTot();
		}
	}
}


code:
package classes.Scenes.NPCs.pregnancies
{
	import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;
	import classes.Player;
	import classes.PregnancyStore;
	import classes.Scenes.PregnancyProgression;
	import classes.Scenes.VaginalPregnancy;
	import classes.StatusEffects;
	import classes.internals.GuiOutput;
	import classes.internals.PregnancyUtils;
	import classes.internals.Utils;

	/**
	 * Contains pregnancy progression and birth scenes for a Player impregnated by Marble.
	 */
	public class PlayerMarblePregnancy implements VaginalPregnancy
	{
		private var output:GuiOutput;

		public function PlayerMarblePregnancy(pregnancyProgression:PregnancyProgression, output:GuiOutput)
		{
			this.output = output;
			pregnancyProgression.registerVaginalPregnancyScene(PregnancyStore.PREGNANCY_PLAYER, PregnancyStore.PREGNANCY_MARBLE, this);
		}

		/**
		 * @inheritDoc
		 */
		public function updateVaginalPregnancy():Boolean
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;
			var displayedUpdate:Boolean = false;

			if (player.pregnancyIncubation === 336) {
				output.text("\nYou realize your belly has gotten slightly larger.  Maybe you need to cut back on the strange food.\n");
				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 280) {
				output.text("\nYour belly is getting more noticeably distended and squirming around.  You are probably pregnant.\n");
				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 216) {
				output.text("\nThe unmistakable bulge of pregnancy is visible in your tummy.  It's feeling heavier by the moment.  ");

				if (player.cor < 40) {
					output.text("You are distressed by your unwanted pregnancy, and your inability to force this thing out of you.");
				}

				if (player.cor >= 40 && player.cor < 75) {
					output.text("Considering the size of the creatures you've fucked, you hope it doesn't hurt when it comes out.");
				}

				if (player.cor >= 75) {
					output.text("You think dreamily about the monstrous cocks that have recently been fucking you, and hope that your offspring inherit such a pleasure tool.");
				}

				kGAMECLASS.dynStats("spe", -1, "lib", 1, "sen", 1, "lus", 2);
				output.text("\n");
				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 180) {
				output.text("\nThe sudden impact of a kick from inside your distended womb startles you.  Moments later it happens again, making you gasp and stagger.  Whatever is growing inside you is strong.\n");
				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 120) {
				output.text("\nYour ever-growing belly makes your pregnancy obvious for those around you.  It's already as big as the belly of any pregnant woman back home.\n");
				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 72) {
				output.text("\nYour belly is distended and overswollen with your offspring, ");

				if (player.cor < 40) {
					output.text("making it difficult to function.");
				}

				if (player.cor >= 40 && player.cor < 75) {
					output.text("and you wonder how much longer you have to wait.");
				}

				if (player.cor >= 75) {
					output.text("and you're eager to give birth, so you can get fill your womb with a new charge.");
				}

				output.text("\n");
				kGAMECLASS.dynStats("spe", -3, "lib", 1, "sen", 1, "lus", 4);
				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 48) {
				output.text("\nYou rub your hands over your bulging belly, lost in the sensations of motherhood.  Whatever child is inside your overstretched womb seems to appreciate the attention, and stops its incessant squirming.\n");
				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 32  || player.pregnancyIncubation === 150) {
				//Increase lactation!
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() >= 1 && player.biggestLactation() < 2) {
					output.text("\nYour breasts feel swollen with all the extra milk they're accumulating.  You wonder just what kind of creature they're getting ready to feed.\n");
					player.boostLactation(.5);
				}

				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() > 0 && player.biggestLactation() < 1) {
					output.text("\nDrops of breastmilk escape your nipples as your body prepares for the coming birth.\n");
					player.boostLactation(.5);
				}

				//Lactate if large && not lactating
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() === 0) {
					output.text("\nYou realize your breasts feel full, and occasionally lactate.  It must be due to the pregnancy.\n");
					player.boostLactation(1);
				}

				//Enlarge if too small for lactation
				if (player.biggestTitSize() === 2 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have swollen to C-cups, in light of your coming pregnancy.\n");
					player.growTits(1, 1, false, 3);
				}

				//Enlarge if really small!
				if (player.biggestTitSize() === 1 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have grown to B-cups, likely due to the hormonal changes of your pregnancy.\n");
					player.growTits(1, 1, false, 3);
				}

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 85) {
				//A small scene for very late in the pregnancy, its breast growth for the little cowgirl.  This scene should be a few days before birth, so the milk doesn't stop before the cowgirl is born.
				output.text("\nYour belly has become heavily pregnant; at the same time, ");

				//If (PC has flat breasts)
				if (player.biggestTitSize() <= 0) {
					output.text("your chest has begun to feel a bit odd.  Your run your hands over it to find that your breasts have grown to around C-cups at some point when you weren't paying attention!  ");
					player.breastRows[0].breastRating = 3;
				}
				else if (player.biggestTitSize() <= 1 && player.mf("m", "f") === "f") {
					output.text("your breasts feel oddly tight in your top.  You put a hand to them and are startled when you find that they've grown to C-cups!  ");
					player.breastRows[0].breastRating = 3;
				}
				else if (player.biggestTitSize() <= 10) {
					output.text("your breasts feel oddly full.  You grab them with your hands, and after a moment you're able to determine that they've grown about a cup in size.  ");
					player.breastRows[0].breastRating++;
				}
				else {
					output.text("your breasts feel a bit odd.  You put a hand on your chest and start touching them.  ");
				}

				if (player.biggestLactation() < 1) {
					output.text("You gasp slightly in surprise and realize that you've started lactating.");
					player.boostLactation(player.breastRows.length);
				}
				else {
					output.text("A few drips of milk spill out of your breasts, as expected.  Though, it occurs to you that there is more milk coming out than before.");
					player.boostLactation(player.breastRows.length * .25);
				}

				output.text("\n");
			}

			return displayedUpdate;
		}

		/**
		 * @inheritDoc
		 */
		public function vaginalBirth():void
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;

			output.text(kGAMECLASS.images.showImage("birth-cowgirl"));
			if (kGAMECLASS.prison.prisonLetter.deliverChildWhileInPrison()) {
				return;
			}

			player.boostLactation(.01);
			PregnancyUtils.createVaginaIfMissing(output, player);

			//If you like terrible outcomes
			if (kGAMECLASS.flags[kFLAGS.MARBLE_NURSERY_CONSTRUCTION] < 100) {
				output.text("\nYou feel a clenching sensation in your belly and something shifts inside.  Your contractions start a few moments later and you realize that it's time for your child to be born.  You cry out mildly in pain and lie down, letting your body start to push the baby out.  Marble doesn't seem to be around right now, so you can do nothing but push.\n\n");

				output.text("You push and heave with all your might, little else going through your mind. You somehow register when the head comes out, and soon the shoulders along with the rest of the body follow.  You lean back and pant for a while before feeling a pair of hands grab a hold of you. They slowly and clumsily feel up your body before finding your " + player.chestDesc() + " and a mouth quickly closes down on a " + player.nippleDescript(0) + ".  You sigh softly, and drift off to sleep.");
				player.cuntChange(20,true,true,false);

				output.text("\n\nEventually you feel a hand on your face, and open your eyes to see Marble looking down at you.  \"Sweetie, are you all right?  Why aren't you pregnant anymore?  Where is our child?\" You stand up and look around.  There is no sign of the baby you were carrying; the child seems to have left after finishing its drink. You never even got to see its face...\n\n");

				output.text("Marble seems to understand what happened, but is really disappointed with you, \"Sweetie, why couldn't you wait until after I'd finished the nursery...?\"");
				//Increase PC's hips as per normal, add to birth counter
			}
			else {

				output.text("\nYou feel a clenching sensation in your belly and something shifts inside.  Your contractions start a few moments later and you realize that it's time for your child to be born.  You cry out mildly in pain and lie down, letting your body start to push the baby out.  Marble rushes over and sees that it's time for you to give birth, so she picks you up and supports you as you continue pushing the child out of your now-gaping " + player.vaginaDescript(0) + ".");
				//50% chance of it being a boy if Marble has been purified
				if (kGAMECLASS.flags[kFLAGS.MARBLE_PURIFIED] > 0 && Utils.rand(2) === 0)
				//it's a boy!
				{
					output.text("\n\nFor the next few minutes, you can’t do much else but squeeze the large form inside your belly out.  Marble tries to help a little, pulling your nether lips open even further to make room for the head.  You gasp as you push the head out, and you hear Marble give a little cry of joy.  \"It’s a son of mine!\" she tells you, but you can barely hear her due to the focus you’re putting into the task of bringing this child out.");
					output.text("\n\nYou give an almighty heave and finally manage to push the shoulders out. The rest is downhill from there.  Once you’ve pushed the child completely out, Marble lays you down on the ground.  You rest there for a few moments, trying to catch your breath after the relatively difficult birthing.  When you finally have a chance to get up, you see that Marble has a small bull boy cradled in her arms, suckling on her nipple.  You can hardly believe that you managed to push out a boy that big!  Marble seems to understand and tells you that the child is actually a fair bit bigger now than when he came out.");
					output.text("\n\nShe helps you stand up and gives you the little boy to suckle for yourself.");
					output.text("\n\nYou put the child to your breast and let him drink down your milk.  You sigh in contentment and Marble says, \"See sweetie?  It’s a really good feeling, isn’t it?\"  You can’t help but nod in agreement.  After a minute the little boy has had enough and you put him into the nursery.");

					output.text("The little boy is already starting to look like he is a few years old; he’s trotting around on his little hoofs.");

					//Increase the size of the PC’s hips, as per normal for pregnancies, increase birth counter
					if (player.hips.rating < 10) {
						player.hips.rating++;
						output.text("After the birth your " + player.armorName + " fits a bit more snugly about your " + player.hipDescript() + ".");
					}

					//has Marble had male kids before?
					if (kGAMECLASS.flags[kFLAGS.MARBLE_BOYS] === 0)
					{
						output.text("You notice that Marble seems to be deep in thought, and you ask her what is wrong.  She starts after a moment and says, \"Oh sweetie, no, it's nothing really.  I just never thought that I'd actually be able to father a son is all.  The thought never occurred to me.\"");
					}
					//Add to marble-kids:
					kGAMECLASS.flags[kFLAGS.MARBLE_KIDS]++;
					kGAMECLASS.flags[kFLAGS.MARBLE_BOYS]++; //increase the number of male kids with Marble
				}
				else // end of new content
				//it's a girl!
				{
					player.cuntChange(20,true,true,false);
					output.text("\n\nFor the next few minutes, you can't do much else but squeeze the large form inside your belly out.  Marble tries to help a little, pulling your nether lips open even further to make room for the head.  You gasp as you push the head out, and you hear Marble give a little cry of joy.  \"It's a daughter of mine!\" she tells you, but you can barely hear her due to the focus you're putting into the task of bringing this child out.\n\n");
					output.text("You give an almighty heave and finally manage to push the shoulders out. The rest is downhill from there.  Once you've pushed the child completely out, Marble lays you down on the ground.  You rest there for a few moments, trying to catch your breath after the relatively difficult birthing.  When you finally have a chance to get up, you see that Marble has a small cowgirl cradled in her arms, suckling on her nipple.  You can hardly believe that you managed to push out a girl that big!  Marble seems to understand and tells you that the child is actually a fair bit bigger now than when she came out.\n\n");
					output.text("She helps you stand up and gives you the little girl to suckle for yourself.  ");

					if (player.statusEffectv4(StatusEffects.Marble) >= 20) {
						output.text("As the child contentedly drinks from your " + player.nippleDescript(0) + ", Marble tells you, \"Sweetie, somehow I know that our kids won't have to worry about the addictive milk.  It will only make them healthy and strong.\"  You nod at her and put the child into the nursery.  ");
					}
					else {
						output.text("You put the child to your breast and let her drink down your milk.  You sigh in contentment and Marble says, \"See sweetie?  It's a really good feeling, isn't it?\"  You can't help but nod in agreement.  After a minute the little girl has had enough and you put her into the nursery.\n\n");
					}

					output.text("The little girl is already starting to look like she is a few years old; she's trotting around on her little hooves.");
					//Add to marble-kids:
					kGAMECLASS.flags[kFLAGS.MARBLE_KIDS]++;
				}

				//Increase the size of the PC's hips, as per normal for pregnancies, increase birth counter
				if (player.hips.rating < 10) {
					player.hips.rating++;
					output.text("\n\nAfter the birth your " + player.armorName + " fits a bit more snugly about your " + player.hipDescript() + ".");
				}
			}

			output.text("\n");
		}
	}
}


code:
package classes.Scenes.NPCs.pregnancies
{
	import classes.GlobalFlags.kGAMECLASS;
	import classes.Player;
	import classes.PregnancyStore;
	import classes.Scenes.PregnancyProgression;
	import classes.Scenes.VaginalPregnancy;
	import classes.internals.GuiOutput;
	import classes.internals.PregnancyUtils;

	/**
	 * Contains pregnancy progression and birth scenes for a Player impregnated by Minerva.
	 */
	public class PlayerMinervaPregnancy implements VaginalPregnancy
	{
		private var output:GuiOutput;

		/**
		 * Create a new Minerva pregnancy for the player. Registers pregnancy for Minerva.
		 * @param	pregnancyProgression instance used for registering pregnancy scenes
		 * @param	output instance for gui output
		 */
		public function PlayerMinervaPregnancy(pregnancyProgression:PregnancyProgression, output:GuiOutput)
		{
			this.output = output;

			pregnancyProgression.registerVaginalPregnancyScene(PregnancyStore.PREGNANCY_PLAYER, PregnancyStore.PREGNANCY_MINERVA, this);
		}

		/**
		 * @inheritDoc
		 */
		public function updateVaginalPregnancy():Boolean
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;
			var displayedUpdate:Boolean = false;

			if (player.pregnancyIncubation === 216) {
				output.text("You realize your belly has gotten slightly larger.  You could go for some peaches around now.");

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 144) {
				output.text("Your belly is distended with pregnancy. You wish you could spend all day bathing.");

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 72) {
				output.text("Your belly has grown enough for it to be twins.  Well, you did want to restore sirens to the world.");

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 24) {
				output.text("Your belly is as big as it can get.  Your unborn children shuffle relentlessly, calming only when you try singing lullabys.");

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 144 || player.pregnancyIncubation === 72 || player.pregnancyIncubation === 85 || player.pregnancyIncubation === 150) {
				//Increase lactation!
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() >= 1 && player.biggestLactation() < 2) {
					output.text("\nYour breasts feel swollen with all the extra milk they're accumulating.  You wonder just what kind of creature they're getting ready to feed.\n");
					player.boostLactation(.5);
				}

				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() > 0 && player.biggestLactation() < 1) {
					output.text("\nDrops of breastmilk escape your nipples as your body prepares for the coming birth.\n");
					player.boostLactation(.5);
				}

				//Lactate if large && not lactating
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() === 0) {
					output.text("\nYou realize your breasts feel full, and occasionally lactate.  It must be due to the pregnancy.\n");
					player.boostLactation(1);
				}

				//Enlarge if too small for lactation
				if (player.biggestTitSize() === 2 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have swollen to C-cups, in light of your coming pregnancy.\n");
					player.growTits(1, 1, false, 3);
				}

				//Enlarge if really small!
				if (player.biggestTitSize() === 1 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have grown to B-cups, likely due to the hormonal changes of your pregnancy.\n");
					player.growTits(1, 1, false, 3);
				}
			}

			return displayedUpdate;
		}

		/**
		 * @inheritDoc
		 */
		public function vaginalBirth():void
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;

			if (kGAMECLASS.prison.prisonLetter.deliverChildWhileInPrison()) {
				return;
			}

			PregnancyUtils.createVaginaIfMissing(output, player);
			kGAMECLASS.highMountains.minervaScene.minervaPurification.playerGivesBirth();

			if (player.hips.rating < 10) {
				player.hips.rating++;
				output.text("\n\nAfter the birth your " + player.armorName + " fits a bit more snugly about your " + player.hipDescript() + ".");
			}

			output.text("\n");
		}
	}
}


code:
package classes.Scenes.NPCs.pregnancies
{
	import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;
	import classes.PerkLib;
	import classes.Player;
	import classes.PregnancyStore;
	import classes.Scenes.PregnancyProgression;
	import classes.Scenes.VaginalPregnancy;
	import classes.Vagina;
	import classes.internals.GuiOutput;
	import classes.internals.PregnancyUtils;
	import classes.internals.Utils;

	/**
	 * Contains pregnancy progression and birth scenes for a Player impregnated by an mouse or the NPC Jojo.
	 */
	public class PlayerMousePregnancy implements VaginalPregnancy
	{
		private var output:GuiOutput;
		private var pregnancyProgression:PregnancyProgression;

		/**
		 * Create a new mouse pregnancy for the player. Registers pregnancies for mice and Jojo.
		 * @param	pregnancyProgression instance used for registering pregnancy scenes
		 * @param	output instance for gui output
		 */
		public function PlayerMousePregnancy(pregnancyProgression:PregnancyProgression, output:GuiOutput)
		{
			this.pregnancyProgression = pregnancyProgression;
			this.output = output;

			pregnancyProgression.registerVaginalPregnancyScene(PregnancyStore.PREGNANCY_PLAYER, PregnancyStore.PREGNANCY_MOUSE, this);
			pregnancyProgression.registerVaginalPregnancyScene(PregnancyStore.PREGNANCY_PLAYER, PregnancyStore.PREGNANCY_JOJO, this);
		}

		/**
		 * @inheritDoc
		 */
		public function updateVaginalPregnancy():Boolean
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;
			var displayedUpdate:Boolean = false;

			if (player.pregnancyIncubation === 336) {
				output.text("\nYou realize your belly has gotten slightly larger.  Maybe you need to cut back on the strange food.\n");

				if (kGAMECLASS.flags[kFLAGS.JOJO_BIMBO_STATE] >= 3) { //Bimbo Jojo, stage 1
					output.text("\nJoy notices you examining your belly and strolls over, playfully poking it with her finger. \"Somebody's getting chubby; maybe you and I need to have a little more fun-fun to help you work off those calories, hmm?" + kGAMECLASS.joyScene.joyHasCockText(" Or maybe I'm just feeding you too much...") + "\" She teases" + kGAMECLASS.joyScene.joyHasCockText(", patting her " + kGAMECLASS.joyScene.joyCockDescript()) + ".\n");
				}

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 280) {
				output.text("\nYour belly is getting more noticeably distended and squirming around.  You are probably pregnant.\n");

				if (kGAMECLASS.flags[kFLAGS.JOJO_BIMBO_STATE] >= 3 && player.pregnancyType === PregnancyStore.PREGNANCY_JOJO) { //Bimbo Jojo, stage 2
					output.text("\nA pair of arms suddenly wrap themselves around you, stroking your belly. \"Like, don't worry, [name]; I love you even if you are getting fat. Actually... this little pot belly of yours is, like, kinda sexy, y'know?\" Joy declares.\n");
					output.text("\nYou roll your eyes at Joy's teasing but appreciate her support all the same.\n");
				}

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 216) {
				if (kGAMECLASS.flags[kFLAGS.JOJO_BIMBO_STATE] >= 3 && player.pregnancyType === PregnancyStore.PREGNANCY_JOJO) { //Bimbo Jojo, stage 3
					output.text("\nYou have no doubt that you're pregnant now, and from your recent urges to eat cheese and nuts, as well as the lusty thoughts that roam your head, you can already imagine who the father is...\n");
					output.text("\nJoy shakes her head. \"Wow, you just keep getting, like, fatter and fatter, don't you, [name]? S'funny, though... I never thought of myself as, like, a chubby chaser before, but that belly of yours really gets me, y'know, hot 'n' bothered.\" She comments.\n");
					output.text("\nYou sigh, almost laughing... sometimes Joy's inability to see the obvious is cute, sometimes it's just funny and sometimes both. You tell her to quit being silly, it's quite obvious by now that you're pregnant and she's the father, by the way.\n");
					output.text("\nJoy stares at you, silent and dumbfounded. Moments of silence pass by... you wonder if maybe you've broken her. Then, suddenly. \"Yahoo!\" She screams, and performs a backflip, dancing around with both arms pumping in the air before suddenly rushing towards you and throwing your arms around you, barely remembering to be gentle to avoid squishing your vulnerable belly. \"I'm gonna be a daddy-mommy!\" She shouts in glee.\n");
					output.text("\nJoy's erm... joy... is infectious and you find yourself smiling at her happy reaction.\n");

					if (kGAMECLASS.flags[kFLAGS.MARBLE_NURSERY_CONSTRUCTION] < 70 && !kGAMECLASS.camp.marbleFollower()) {
						output.text("\nThen her face falls in realisation. \"Crap! I gotta get that nursery built, like, now!\" She yells. She gives your belly a loud, wet kiss, then runs off into the scrub, muttering to herself about what she needs to get.\n");
						kGAMECLASS.flags[kFLAGS.MARBLE_NURSERY_CONSTRUCTION] = 69;
					}
				}
				else {
					output.text("\nThe unmistakable bulge of pregnancy is visible in your tummy.  It's feeling heavier by the moment.  ");

					if (kGAMECLASS.flags[kFLAGS.JOJO_STATUS] > 0) {
						if (player.cor < 40) {
							output.text("You are distressed by your unwanted pregnancy, and your inability to force this thing out of you.");
						}

						if (player.cor >= 40 && player.cor < 75) {
							output.text("Considering the size of the creatures you've fucked, you hope it doesn't hurt when it comes out.");
						}

						if (player.cor >= 75) {
							output.text("You think dreamily about the monstrous cocks that have recently been fucking you, and hope that your offspring inherit such a pleasure tool.");
						}
					}
					else {
						output.text("");
					}
				}

				output.text("\n");
				kGAMECLASS.dynStats("spe", -1, "lib", 1, "sen", 1, "lus", 2);
				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 180) {
				if (kGAMECLASS.flags[kFLAGS.JOJO_BIMBO_STATE] >= 3 && player.pregnancyType === PregnancyStore.PREGNANCY_JOJO) { //Bimbo Jojo, stage 4
					output.text("\nIf there was ever any doubt you were carrying only one child before, it has long been forgotten. Your belly is bigger than any woman's back in your village, and the children within are seemingly restless! They kick you all the time; it is clear they inherited Joy's energy, but it's starting to get bothersome. You sigh as you take a seat to rest a bit as the babies inside you kick.\n");
					output.text("\nThis would, of course, be less tiresome if you didn't have to lug around a third mouse as well... A smooch on your belly signals Joy's arrival into the scene.\n");
					output.text("\nThe bimbo mouse smiles up at you, rubbing her cheek against your gravid midriff. \"Aw... how are Joyjoy's little ones today? Are you being good to your mommy?\" She coos.\n");
					output.text("\nYou tell her they've been very active lately, you barely get a moment's rest as they keep kicking inside your belly.\n");
					output.text("\nShe frowns and then stares at your belly. \"Naughty little babies! Stop kicking mommy! You wouldn't be kicking like this inside mommy Joy's tummy, now would you?\" She states, unconcerned about the fact she is trying to chastise her unborn offspring.\n");
					output.text("\nYou chuckle at the bimbo mouse's antics. Somehow the whole scene is uplifting, and you feel a bit less tired by your pregnancy.\n");

					if (kGAMECLASS.flags[kFLAGS.MARBLE_NURSERY_CONSTRUCTION] === 69 && !kGAMECLASS.camp.marbleFollower()) {
						output.text("\nThe mouse turns to walk away, but stops before doing so and looks at you. \"Oh, right! I, like, totally forgot; the nursery's all done now. Our little babies will have a cosy nest to play in when they finally, y'know, come out.\" She states, full of pride at her achievements - both knocking you up and getting a nursery done.\n");
						kGAMECLASS.flags[kFLAGS.MARBLE_NURSERY_CONSTRUCTION] = 70;
					}
				}
				else {
					output.text("\nThe sudden impact of a tiny kick from inside your distended womb startles you.  Moments later it happens again, making you gasp.\n");
				}

				displayedUpdate = true;
			}
			if (player.pregnancyIncubation === 120) {
				if (kGAMECLASS.flags[kFLAGS.JOJO_BIMBO_STATE] >= 3 && player.pregnancyType === PregnancyStore.PREGNANCY_JOJO) { //Bimbo Jojo, stage 5
					output.text("\nYou're mildly annoyed at your squirming tummy, it seems your children have taken a liking to scurrying about inside you. The other mildly annoying thing, is Joy's attachment to your huge pregnant belly. It would seem that the bimbo mouse is as eager to see the children as the children inside you are eager to come out and play.\n");
					output.text("\n\"Like, [name], when are the babies gonna come out and play? I wanna hold my cute little squeakies already!\" Joy pouts, stamping her foot in irritation at the wait for you to give birth.\n");
					output.text("\nYou tell her that she'll just have to wait, you want them out too. It's getting heavy.\n");
					output.text("\nJoy pouts, \"But I want them to come out now!\" She whines, then she heaves a heavy sigh. \"Alright, I guess it'll be, like, worth the wait...\" She looks at your " + player.breastDescript(0) + " and develops a sly expression. \"Like... some nice creamy milk would make me feel better...\" She wheedles.\n");
					output.text("\n");

					if (player.findPerk(PerkLib.Feeder) >= 0) {
						output.text("You grin at Joy's idea, but you can't simply mash her against your breasts and nurse her without some teasing first.");
					}

					output.text("You tell Joy that she can have some, but she has to ask nicely, like a good girl.\n");
					output.text("\nThe bimbo mouse presses her hands together and gives you a winning smile, eyes wide with an uncharacteristic innocence. \"Like, [name], will you please let your little Joyjoy suck on your " + player.breastDescript(0) + " and drink all the yummy mommy-milk she can hold? Puh-lease?\" She begs.\n");
					output.text("\nYou expose your breasts and open your arms in invitation.\n");
					output.text("\nJoy squeaks in glee and rushes into your embrace, rubbing her " + (kGAMECLASS.jojoScene.pregnancy.isPregnant ? "swollen " : "") + "belly against your baby-filled stomach and nuzzling your player.breastDescript excitedly. She wastes no time in slurping on your nipplesdescript until they are painfully erect, then sucks the closest one into her mouth and starts suckling as if her life depends on it.\n");
					output.text("\nBy the time Joy's had her fill, your babies have calmed down a little. It seems like being close to Joy might have actually helped calm the little mice down. Joy yawns and nuzzles your " + player.breastDescript(0) + ".\n");
					output.text("\n\"Mmm... Sooo good.\" Joy murmurs, then burps softly. \"I feel, like, so sleepy now...\" She mumbles, yawning hugely, then reluctantly she pushes herself off of you and starts stumbling away in the direction of her bed" + (player.lactationQ() >= 750 || player.findPerk(PerkLib.Feeder) >= 0 ? ", her belly audibly sloshing from all the milk you let her stuff herself with" : "") + ".\n");
					output.text("\nYou sigh, glad to finally have a moment to rest.\n");
				}
				else {
					output.text("\nYour ever-growing belly makes your pregnancy obvious for those around you.  It's already as big as the belly of any pregnant woman back home.\n");
				}

				displayedUpdate = true;
			}
			if (player.pregnancyIncubation === 72) {
				output.text("\nYour belly is painfully distended and overswollen with wriggling offspring, ");

				if (player.cor < 40) {
					output.text("making it difficult to function.");
				}

				if (player.cor >= 40 && player.cor < 75) {
					output.text("and you wonder how much longer you have to wait.");
				}

				if (player.cor >= 75) {
					output.text("and you're eager to give birth, so you can get impregnated again by monstrous cocks unloading their corrupted seed directly into your eager womb.");
				}

				output.text("\n");
				kGAMECLASS.dynStats("spe", -3, "lib", 1, "sen", 1, "lus", 4);

				displayedUpdate = true;
			}

			if (player.pregnancyIncubation === 48) {
				output.text("\nYou rub your hands over your bulging belly, lost in the sensations of motherhood.  Whatever is inside your overstretched womb seems to appreciate the attention and stops its incessant squirming.  ");

				if (player.cor < 40) {
					output.text("Afterwards you feel somewhat disgusted with yourself.\n");
				}

				if (player.cor >= 40 && player.cor < 75) {
					output.text("You estimate you'll give birth in the next few days.\n");
				}

				if (player.cor >= 75) {
					output.text("You find yourself daydreaming about birthing hundreds of little babies, and lounging around while they nurse non-stop on your increasingly sensitive breasts.\n");
				}
			}

			if (player.pregnancyIncubation === 32 || player.pregnancyIncubation === 64 || player.pregnancyIncubation === 85 || player.pregnancyIncubation === 150) {
				//Increase lactation!
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() >= 1 && player.biggestLactation() < 2) {
					output.text("\nYour breasts feel swollen with all the extra milk they're accumulating.  You wonder just what kind of creature they're getting ready to feed.\n");
					player.boostLactation(.5);
				}

				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() > 0 && player.biggestLactation() < 1) {
					output.text("\nDrops of breastmilk escape your nipples as your body prepares for the coming birth.\n");
					player.boostLactation(.5);
				}

				//Lactate if large && not lactating
				if (player.biggestTitSize() >= 3 && player.mostBreastsPerRow() > 1 && player.biggestLactation() === 0) {
					output.text("\nYou realize your breasts feel full, and occasionally lactate.  It must be due to the pregnancy.\n");
					player.boostLactation(1);
				}

				//Enlarge if too small for lactation
				if (player.biggestTitSize() === 2 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have swollen to C-cups, in light of your coming pregnancy.\n");
					player.growTits(1, 1, false, 3);
				}

				//Enlarge if really small!
				if (player.biggestTitSize() === 1 && player.mostBreastsPerRow() > 1) {
					output.text("\nYour breasts have grown to B-cups, likely due to the hormonal changes of your pregnancy.\n");
					player.growTits(1, 1, false, 3);
				}
			}

			return displayedUpdate;
		}

		/**
		 * @inheritDoc
		 */
		public function vaginalBirth():void
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;

			pregnancyProgression.detectVaginalBirth(PregnancyStore.PREGNANCY_MOUSE);
			player.boostLactation(.01);

			output.text("\nYou wake up suddenly to strong pains and pressures in your gut. As your eyes shoot wide open, you look down to see your belly absurdly full and distended. You can feel movement underneath the skin, and watch as it is pushed out in many places, roiling and squirming in disturbing ways. The feelings you get from inside are just as disconcerting. You count not one, but many little things moving around inside you. There are so many, you can't keep track of them.\n");
			PregnancyUtils.createVaginaIfMissing(output, player);

			//Main Text here
			if (player.pregnancyType === PregnancyStore.PREGNANCY_JOJO && (kGAMECLASS.flags[kFLAGS.JOJO_STATUS] < 0 || kGAMECLASS.flags[kFLAGS.JOJO_BIMBO_STATE] >= 3) && !kGAMECLASS.prison.inPrison) {
				if (kGAMECLASS.flags[kFLAGS.JOJO_BIMBO_STATE] >= 3) {
					kGAMECLASS.joyScene.playerGivesBirthToJoyBabies();
					return;
				}
				else {
					kGAMECLASS.jojoScene.giveBirthToPureJojoBabies();
				}
			}
			else {
				output.text("Pain shoots through you as they pull open your cervix forcefully. You grip the ground and pant and push as the pains of labor overwhelm you. You feel your hips being forceably widened by the collective mass of the creatures moving down your birth canal. You spread your legs wide, laying your head back with groans and cries of agony as little white figures begin to emerge from between the lips of your abused pussy. Large innocent eyes, even larger ears, cute little " + (kGAMECLASS.noFur() ? "faces" : "muzzles") + ", long slender pink tails all appear as the figures emerge. Each could be no larger than six inches tall, but they seem as active and curious as if they were already developed children. \n\n");
				output.text("Two emerge, then four, eight... you lose track. They swarm your body, scrambling for your chest, and take turns suckling at your nipples. Milk does their bodies good, making them grow rapidly, defining their genders as the girls grow cute little breasts and get broader hips and the boys develop their little mouse cocks and feel their balls swell. Each stops suckling when they reach two feet tall, and once every last one of them has departed your sore, abused cunt and drunk their fill of your milk, they give you a few grateful nuzzles, then run off towards the forest, leaving you alone to recover.\n");
			}

			if (player.averageLactation() > 0 && player.averageLactation() < 5) {
				output.text("Your [chest] won't seem to stop dribbling milk, lactating more heavily than before.");
				player.boostLactation(.5);
			}

			player.cuntChange(60, true,true,false);

			if (player.vaginas[0].vaginalWetness === Vagina.WETNESS_DRY) {
				player.vaginas[0].vaginalWetness++;
			}

			player.orgasm('Vaginal');
			kGAMECLASS.dynStats("str", -1,"tou", -2, "spe", 3, "lib", 1, "sen", .5);

			//Butt increase
			if (player.butt.rating < 14 && Utils.rand(2) === 0) {
				if (player.butt.rating < 10) {
					player.butt.rating++;
					output.text("\n\nYou notice your " + player.buttDescript() + " feeling larger and plumper after the ordeal.");
				}
				//Big butts grow slower!
				else if (player.butt.rating < 14 && Utils.rand(2) === 0) {
					player.butt.rating++;
					output.text("\n\nYou notice your " + player.buttDescript() + " feeling larger and plumper after the ordeal.");
				}
			}

			output.text("\n");
		}
	}
}


code:
package classes.Scenes.NPCs.pregnancies
{
	import classes.GlobalFlags.kGAMECLASS;
	import classes.Player;
	import classes.PregnancyStore;
	import classes.Scenes.PregnancyProgression;
	import classes.Scenes.VaginalPregnancy;
	import classes.internals.GuiOutput;
	import classes.internals.PregnancyUtils;

	/**
	 * Contains pregnancy progression and birth scenes for a Player impregnated by CORRUPTED WITCH NOT COPIED.
	 */
	public class PlayerTentacleBeastPregnancy implements VaginalPregnancy
	{
		private var output:GuiOutput;

		/**
		 * Create a new  CORRUPTED WITCH NOT COPIED. pregnancy for the player. Registers pregnancy for  CORRUPTED WITCH NOT COPIED.
		 * @param	pregnancyProgression instance used for registering pregnancy scenes
		 * @param	output instance for gui output
		 */
		public function PlayerTentacleBeastPregnancy(pregnancyProgression:PregnancyProgression, output:GuiOutput)
		{
			this.output = output;

			pregnancyProgression.registerVaginalPregnancyScene(PregnancyStore.PREGNANCY_PLAYER, PregnancyStore.PREGNANCY_TENTACLE_BEAST_SEED, this);
		}

		/**
		 * @inheritDoc
		 */
		public function updateVaginalPregnancy():Boolean
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;
			var displayedUpdate:Boolean = false;

			//Stage 1:
			if (player.pregnancyIncubation == 120) {
				output.text("\nYou feel a hard, small lump in your belly. It's a bit uncomfortable.\n");
				displayedUpdate = true;
			}
			//Stage 2:
			if (player.pregnancyIncubation == 90) {
				output.text("\nThe lump has grown larger, and is somewhat visible on your abdomen. Your belly feels a bit sore and moving around is uncomfortable.\n");
				displayedUpdate = true;
			}
			//Stage 3:
			if (player.pregnancyIncubation == 60) {
				output.text("\nYour bodily fluids have a distinct... grassy smell to it. Additionally, the lump in your belly has grown painfully large.  It's pretty evident that you're pregnant with something, though it doesn't seem to move in your womb. \n");
				displayedUpdate = true;
			}
			//Stage 4:
			if (player.pregnancyIncubation == 30) {
				output.text("\nYour mouth and saliva tastes pretty clearly of pumpkin. It's not entirely unpleasant, but it's hard to ignore. The lump has stopped growing, so it won't be long before whatever is inside you is ready to be birthed. \n");
				displayedUpdate = true;
			}
			return displayedUpdate;
		}

		/**
		 * @inheritDoc
		 */
		public function vaginalBirth():void
		{
			//TODO remove this once new Player calls have been removed
			var player:Player = kGAMECLASS.player;

			if (kGAMECLASS.prison.prisonLetter.deliverChildWhileInPrison()) {
				return;
			}

			PregnancyUtils.createVaginaIfMissing(output, player);
			kGAMECLASS.forest.tentacleBeastScene.pumpkinBirth();

			if (player.hips.rating < 10) {
				player.hips.rating++;
				output.text("\n\nAfter the birth your " + player.armorName + " fits a bit more snugly about your " + player.hipDescript() + ".");
			}

			output.text("\n");
		}
	}
}


code:
# NPC related pregnancies

Contains pregnancy content for NPCs.
Files are named in the following pattern: `MotherFatherPregnancy.as`


code:
/**
 * Created by aimozg on 06.01.14.
 */
package classes.Scenes.Places.Bazaar
{
	import classes.*;
	import classes.GlobalFlags.kGAMECLASS;
	import classes.Scenes.Places.Bazaar;

	public class BazaarAbstractContent extends BaseContent
	{
		protected function get bazaar():Bazaar {
			return game.bazaar;
		}

		public function BazaarAbstractContent() {}
	}
}


code:
package classes.Scenes.Places.Bazaar {
	import classes.*;
	import classes.GlobalFlags.kFLAGS;
	import classes.Creature;
	import classes.Player;
	import classes.Scenes.Inventory;
	import classes.StatusEffects;
	import classes.display.SpriteDb;
	import classes.internals.*;

// By Foxwells
// Sun, the Bizarre Bazaar's Weaponsmith/Blacksmith
// A rather bare-bones version of the actual NPC I made, but eh
// Anyways Sun's an unfriendly grump, much against what his name implies
// He's a jaguar-morph. And a big wall of muscle. Also he has a boyfriend

	public class ChillySmith extends BazaarAbstractContent {

		public function ChillySmith() { }

		public function addShopItem(button:Number, item:ItemType, price:int, shop:int):void {
			outputText("\n" + capitalizeFirstLetter(item.longName) + " - " + price + " gems");
			addButton(button, item.shortName, transactionItemConfirmation, item, price, shop).hint(item.description);
		}

		public function transactionItemConfirmation(item:ItemType, price:int, shop:int):void {
			clearOutput();
			outputText("Sun looks over as you bring the " + item.longName + " to him. You hold it out to him and ask how much it costs. He takes it out of your hand for a moment, examining it, then grunts, \"" + num2Text(price) + " Gems.\"");
			if (player.gems >= price) {
				outputText("\n\nDo you buy it?");
				menu();
				addButton(0, "Yes", transactionYes, item, price, shop);
				addButton(1, "No", transactionNo, shop);
			}
			else {
				outputText("\n\nYou count out your Gems and realize you can't afford it.");
				menu()
				addButton(0, "Next", transactionNo, shop);
			}
		}

		public function transactionYes(item:ItemType, price:int, shop:int):void {
			//Determine sub-shop
			var shopToGo:Function = null
			if (shop == 1) shopToGo = buySomeWeapons;
			else shopToGo = buySomeArmor;
			//Process
			clearOutput();
			if (player.gems >= price) {
				outputText("You fill out a couple papers while Sun takes off a security tag. He then holds out " + item.longName + " to you, saying, \"Here.\"");
				player.gems -= price;
				menu();
				statScreenRefresh();
				inventory.takeItem(item, shopToGo);
			}
			else {
				outputText("You count out your Gems and realize you can't afford it.");
				menu();
				addButton(0, "Next", transactionNo, shop);
			}
		}

		public function transactionNo(shop:int):void {
			if (shop == 1) buySomeWeapons();
			else buySomeArmor();
		}

		public function smithButton(setButtonOnly:Boolean = false):void { //Shop button/appearance blurb
			if (!setButtonOnly) {
				outputText("\n\nOne large wagon near the back of the bazaar is almost unnoticable despite its size. All it has on it is a sign that reads ");
				if (silly()) outputText("\"Chili's\"");
				else outputText("\"Chilly Smith\"");
				outputText(". Its colors are muted and dark compared to the dazzle of everything else, as though it's trying to hide.");
			}
			else addButton(3, "C. Smith", smithShop).hint("Look over the local smith's wares.");
		}

		public function smithShop():void { //Entrance, buttons
			spriteSelect(SpriteDb.s_chillySmith);
			clearOutput();
			outputText("You make your way into ");
			if (silly()) outputText("the Chili's");
			else outputText("Chilly Smith");
			outputText(" and glance around, faced with cool-colored walls and a rather calm setting. The jaguar-morph shopowner, Sun, looks over to you and flicks his tail as if that's a proper greeting. The black avian beside him, Harmony, waves and calls out a hello. The two are a rather funny pair, with Sun being a " + (flags[kFLAGS.USE_METRICS] > 0 ? "6'4''" : "193 cm") + " wall of muscle and Harmony slender as can be, barely reaching Sun's shoulder. The shop itself is minimalist and straight-forward. You walk among shelves and glance over the stock.");
			menu();
			addButton(0, "Buy", buySomeShit); // Shop section
			//if (!player.hasStatusEffect(StatusEffects.KnowsBlackfire)) addButton(1, "Talk", theFuckIsYouWho); // Left over from original; still need a way for you to learn Blackfire
			addButton(4, "Leave", bazaar.enterTheBazaarAndMenu);
		}

		public function buySomeShit():void { //Shop buttons
			clearOutput();
			outputText("You announce you want to buy something, which calls Sun's attention. He turns his head to you, same dead look in his eyes that he usually has, and says, \"All right. Bring whatever up to the front when you pick something.\"");
			menu();
			addButton(0, "Weapons", buySomeWeapons);
			addButton(1, "Armor", buySomeArmor);
			addButton(4, "Back", smithShop);
		}

		public function buySomeWeapons():void { //Purchase weapons
			clearOutput();
			outputText("You decide to take a look at the weapons that the shop stocks.\n");
			menu();
			addShopItem(0, weapons.PTCHFRK, 200, 1); //Listen, I just really want this released.
			addShopItem(1, weapons.L_DAGGR, 150, 1);
			addShopItem(2, weapons.RIDINGC, 50, 1);
			addShopItem(3, weapons.SUCWHIP, 400, 1);

			addShopItem(5, weapons.SCIMITR, 500, 1);
			addShopItem(6, weapons.SPEAR  , 450, 1);
			addShopItem(7, weapons.U_SWORD, 800, 1);
			addShopItem(8, weapons.MRAPIER, 25000, 1);

			addButton(4, "Back", buySomeShit);
		}

		public function buySomeArmor():void { //Purchase armor
			clearOutput();
			outputText("You decide to take a look at the armor that the shop stocks.\n");
			menu();
			addShopItem(0, armors.DSCLARM, 1000, 2);
			addShopItem(1, armors.SSARMOR, 2000, 2);
			addShopItem(2, armors.FULLPLT, 700, 2);
			addShopItem(3, armors.SCALEML, 500, 2);

			if (flags[kFLAGS.GOTTEN_INQUISITOR_ARMOR] == 1) { //A way for you to get the other armor, considering you have to give the Corset to Rubi. If these need price raising, let me know :3
				if (flags[kFLAGS.GOTTEN_INQUISITOR_ROBES] == 1 && flags[kFLAGS.GOTTEN_INQUISITOR_CORSET] == 0) {
					addButton(5, armors.I_CORST.shortName, buyInquiCorset);
					outputText("\nAn inquisitor's corset - 20000 Gems");
				} else if (flags[kFLAGS.GOTTEN_INQUISITOR_CORSET] == 1 && flags[kFLAGS.GOTTEN_INQUISITOR_ROBES] == 0) {
					addButton(5, armors.I_ROBES.shortName, buyInquiRobes);
					outputText("\nAn inquisitor's robes - 20000 Gems");
				} else if (flags[kFLAGS.GOTTEN_INQUISITOR_CORSET] == 1 && flags[kFLAGS.GOTTEN_INQUISITOR_ROBES] == 1) {
					addShopItem(5, armors.EBNJACK, 6000, 2);
				}
			} else if (flags[kFLAGS.GOTTEN_INQUISITOR_ARMOR] == 0) {
				addShopItem(5, armors.EBNJACK, 6000, 2);
			}
			addShopItem(6, armors.SS_ROBE, 2500, 2);
			addShopItem(7, armors.BIMBOSK, 250, 2);
			addShopItem(8, armors.INDECST, 1000, 2);
			addButton(4, "Back", buySomeShit);
		}

		public function whatTheFuckDude():void { //"No" choice for any special purchases
			clearOutput();
			outputText("You shake your head. That's simply too much for you to pay. You wish him luck in selling it and turn back to the rest of the shop.");
			menu();
			addButton(0, "Next", buySomeShit);
		}

		public function buyInquiCorset():void { //Inquisitor's Corset purchase confirmation
			clearOutput();
			outputText("You point to the overly sexual corset and ask what it's about. Sun shrugs in reply.\n\n");
			outputText("\"Found it in some weird place at the Swamp. 20,000 Gems.\"\n\n");
			outputText("Do you buy the Inquisitor's Corset?");
			menu();
			addButton(0, "Yes", timeForSexy);
			addButton(1, "No", whatTheFuckDude);
		}

		public function timeForSexy():void {
			clearOutput();
			if (player.gems < 20000) {
				outputText("You'd love to buy the corset, but it's out of your price range right now. You wish Sun good luck in selling it and move on in the shop.");
				menu();
				addButton(0, "Next", buySomeArmor);
			}
			else {
				outputText("You tell Sun that you want to buy it. He nods and has you bring it to the counter, where he removes a security tag, takes your Gems, and hands it over.");
				player.gems -= 20000;
				flags[kFLAGS.GOTTEN_INQUISITOR_CORSET]++;
				statScreenRefresh();
				menu();
				inventory.takeItem(armors.I_CORST, buySomeArmor);
			}
		}

		public function buyInquiRobes():void { //Inquisitor's Robes purchase confirmation
			clearOutput();
			outputText("You point to the forboding robes and ask what it's about. Sun shrugs in reply.\n\n");
			outputText("\"Found it in some weird place at the Swamp. 20,000 Gems.\"\n\n");
			outputText("Do you buy the Inquisitor's Robes?");
			menu();
			addButton(0, "Yes", timeForDoubleSexy);
			addButton(1, "No", whatTheFuckDude);
		}

		public function timeForDoubleSexy():void {
			clearOutput();
			if (player.gems < 20000) {
				outputText("You'd love to buy the armor, but it's out of your price range right now. You wish Sun good luck in selling it and move on in the shop.");
				menu();
				addButton(0, "Next", buySomeArmor);
			} else {
				outputText("You tell Sun that you want to buy it. He nods and has you bring it to the counter, where he removes a security tag, takes your Gems, and hands it over.");
				player.gems -= 20000;
				flags[kFLAGS.GOTTEN_INQUISITOR_ROBES]++;
				statScreenRefresh();
				menu();
				inventory.takeItem(armors.I_ROBES, buySomeArmor);
			}
		}

		public function theFuckIsYouWho():void { //Talk stuff
			clearOutput();
			outputText("You walk up to Sun and give him a merry greeting. He glances you up and down, looking less than pleased.\n\n");
			if (rand(10) == 0 && !player.hasStatusEffect(StatusEffects.KnowsBlackfire)) {
				outputText("With a long sigh, he grabs a book from a nearby shelf and shoves it into your arms, saying, \"Here. Take this and leave me to do my damn job. This isn't a fucking playground.\"\n\n");
				outputText("You frown. You'd only wanted to talk. Still, you mumble a thanks and quickly back out of the store. You read the book and blink with new knowledge when you're done-- you have learned the spell Blackfire!");
				player.createStatusEffect(StatusEffects.KnowsBlackfire, 0, 0, 0, 0);
			}
			else {
				if (rand(4) == 0) {
					outputText("Sun reaches into his pocket and and crams a handful of Gems against your chest, saying, \"I'm gonna pay you five ");
					if (silly()) outputText("dollars");
					else outputText("Gems");
					outputText(" to fuck off.\" You give a confused thanks and back away.");
					player.gems += 5;
				}
				else {
					if (rand(2) == 0) outputText("When he says nothing besides giving you a hard glare, you get the point and back away with a murmured apology.");
					else outputText("\"I have a boyfriend.\" He jabs a thumb in Harmony's direction. You glance at Harmony, then blink at Sun a couple times. That wasn't what you really wanted, but okay. You give him a congrats and duck out of the store.");
				}
			}
			menu();
			addButton(0, "Next", camp.returnToCampUseOneHour);
		}

	}
}