From 3bd4e9fa866db510e6706bb6f1cc69e2c6ffdf1b Mon Sep 17 00:00:00 2001
From: pregmodfan <pregmodfan@cock.li>
Date: Thu, 15 Mar 2018 21:07:29 +0200
Subject: [PATCH] Tweaking and fixes.

---
 src/js/storyJS.tw                       | 2 +-
 src/js/wombJS.tw                        | 4 +++-
 src/pregmod/widgets/seBirthWidgets.tw   | 2 +-
 src/uncategorized/remoteSurgery.tw      | 6 ++++--
 src/uncategorized/surgeryDegradation.tw | 1 +
 5 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw
index b18a5bdd102..bac88df0e53 100644
--- a/src/js/storyJS.tw
+++ b/src/js/storyJS.tw
@@ -293,7 +293,7 @@ window.canImpreg = function(slave1, slave2) {
 window.isFertile = function(slave) {
 	if (!slave) {
 		return null;
-	} else if (slave.preg > 0) { /* currently pregnant */
+	} else if (slave.womb.length > 0 || slave.broodmother > 0) { /* currently pregnant or broodmother */
 		return false;
 	} else if (slave.preg < -1) { /* sterile */
 		return false;
diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw
index 36847302c5b..fca33e0d73f 100644
--- a/src/js/wombJS.tw
+++ b/src/js/wombJS.tw
@@ -256,13 +256,15 @@ window.WombNormalizePreg = function(actor)
         actor.pregKnown = 0;
         
         if (actor.preg > 0)
-            actor.preg = 0;
+            actor.preg = 0.1; //to avoid legacy code conflicts - broodmother on hold can't be impregnated, but she not on normal contraceptives. So we set this for special case.
         
         if (actor.pregSource > 0)
             actor.pregSource = 0;
 
         if (actor.pregWeek > 0) 
             actor.pregWeek = 0;
+            
+        actor.broodmotherCountDown = 0;
     }
     
     if (actor.womb.length > 0)
diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
index c5e1543a091..50667d2bc8b 100644
--- a/src/pregmod/widgets/seBirthWidgets.tw
+++ b/src/pregmod/widgets/seBirthWidgets.tw
@@ -941,7 +941,7 @@ All in all,
 	<<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>>
 	<<if $slaves[$i].broodmotherCountDown > 0 && $slaves[$i].womb.length > 0>> /*do we really finished?*/
 		<<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i]) >> /*age of most new (small) fetus used to correct guessing of remained time.*/
-		<<set $slaves[$i].preg = 0>>
+		<<set $slaves[$i].preg = 0.1>>
 		<<set $slaves[$i].pregType = 0>>
 		<<set $slaves[$i].pregSource = 0>>
 	<</if>>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index bada24f0c06..838db590d7c 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -506,6 +506,8 @@ waist.
 $pronounCap's
 <<if $activeSlave.pregKnown > 0>>
 	pregnant.
+<<elseif $activeSlave.womb.length == 0 && $activeSlave.broodmother > 0>>
+	broodmother on hold.
 <<elseif $activeSlave.preg > 0>>
 	showing unusual discomfort as $possessive stomach is inspected. A quick test reveals that @@.lime;$pronoun is pregnant.@@
 	<<set $activeSlave.pregKnown = 1>>
@@ -532,7 +534,7 @@ $pronounCap's
 	//$possessiveCap indenture forbids elective surgery//
 <<elseif $activeSlave.breedingMark == 1>>
 	//You are forbidden from affecting $possessive fertility//
-<<elseif $activeSlave.preg > 0 || $activeSlave.inflation > 0>>
+<<elseif $activeSlave.preg > 0 || $activeSlave.inflation > 0 || $activeSlave.broodmother > 0>>
 	//$pronounCap is unable to support an abdominal implant at this time//
 <<elseif $activeSlave.bellyImplant >= 750000>>
 	//$possessiveCap abdominal implant is so far beyond its maximum limit it is at risk of rupturing//
@@ -764,7 +766,7 @@ Work on her sex:
 		<<if $activeSlave.womb.length == 0 >>
 			[[Remove a pregnancy generator|Surgery Degradation][$activeSlave.preg = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0,$activeSlave.pregType = 0,$activeSlave.broodmother = 0,$activeSlave.broodmotherFetuses = 0,$activeSlave.broodmotherOnHold = 0,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "pregRemove"]] 
 		<<else>>
-			$possessiveCap is pregnant right now, and her broodmother implant can't be safely extracted.
+			She is pregnant right now, and her broodmother implant can't be safely extracted.
 		<</if>>
 	<</if>>
 <</if>>
diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw
index 903f40b21d6..d1d3449da05 100644
--- a/src/uncategorized/surgeryDegradation.tw
+++ b/src/uncategorized/surgeryDegradation.tw
@@ -409,6 +409,7 @@ As the remote surgery's long recovery cycle completes,
 			<<replace "#seed">>
 			You simply take her on the spot, using her to your liking and shooting a load deep into her receptive pussy. The implant rewards her upon successful fertilization, so her moans of pleasure as you pull out of her inform you she'll soon <<if $activeSlave.broodmother == 2>>be greatly swollen<<else>>grow heavy<</if>> with @@.lime;your brood.@@
 			<<set $activeSlave.pregSource = -1>>
+			<<set WombImpregnate($activeSlave, 1, -1, 0)>> /* to ensure player fatherinity we need actual fetus here */
 			<<VaginalVCheck>>
 			<</replace>>
 		<</link>>
-- 
GitLab