From dea456a7ae059eb516e153d18e2427e1892f6ad2 Mon Sep 17 00:00:00 2001
From: kopareigns <kopareigns@gmail.com>
Date: Wed, 21 Nov 2018 12:22:58 -0500
Subject: [PATCH] More work

---
 src/pregmod/csec.tw                   | 35 ++++----------
 src/pregmod/sePlayerBirth.tw          |  8 ++--
 src/pregmod/widgets/seBirthWidgets.tw |  4 +-
 src/uncategorized/slaveInteract.tw    | 67 ++++++++++++++-------------
 4 files changed, 50 insertions(+), 64 deletions(-)

diff --git a/src/pregmod/csec.tw b/src/pregmod/csec.tw
index dca1115cba7..529814a1fad 100644
--- a/src/pregmod/csec.tw
+++ b/src/pregmod/csec.tw
@@ -132,31 +132,14 @@
 <<set _incubated = 0>>
 <<set _oldDevotion = $activeSlave.devotion>>
 
-<<set _cToIncub = 0, _origReserve = WombReserveCount($activeSlave, "incubator")>> 
-<<if _origReserve > 0 && _curBabies > 0>> /*Do we need incubator checks?*/
-	<<if _curBabies >= _origReserve>>
-		/*adding normal*/
-		<<set _cToIncub = _origReserve>>
-	<<elseif _curBabies < _origReserve && $activeSlave.womb.length > 0>>
-		/*broodmother or partial birth, we will wait for next time to get remaining children*/
-		<<set _cToIncub = _curBabies>>
-	<<else>>
-		/*Stillbirth or something other go wrong. Correcting children count.*/
-		<<set _cToIncub = _curBabies>>
+<<set _cToIncub = 0, _cToNursery = 0>> 
+<<for _csec = 0; _csec < _curBabies; _csec++>>
+	<<if $slaves[$i].curBabies[_csec].reserve === "incubator">>
+		<<set _cToIncub++>>
+	<<elseif $slaves[$i].curBabies[_csec].reserve === "nursery">>
+		<<set _cToNursery++>>
 	<</if>>
-<</if>>
-
-/*this block is the same as the one above, with variables for the nursery instead*/
-<<set _cToNursery = 0, _origReserveNursery = WombReserveCount($activeSlave, "nursery")>>  
-<<if _origReserveNursery > 0 && _curBabies > 0>>
-	<<if _curBabies >= _origReserveNursery >>
-		<<set _cToNursery = _origReserveNursery >>
-	<<elseif _curBabies < _origReserveNursery && $activeSlave.womb.length > 0>>
-		<<set _cToNursery = _curBabies>>
-	<<else>>
-		<<set _cToNursery = _curBabies>>
-	<</if>>
-<</if>>
+<</for>>
 
 /* ------------------------------------------------ */
 
@@ -179,7 +162,7 @@ Performing a cesarean section is trivial for the remote surgery to carry out. $a
 	<<if _curBabies <= 1>>has<<else>>have<</if>>
 	already been
 
-	<<if _cToIncub == _curBabies && _cToIncub > 0 >>
+	<<if _cToIncub == _curBabies>>
 		taken to $incubatorName.
 		<<set _incubated = 2>>
 	<<elseif _cToIncub < _curBabies && _cToIncub > 0>>
@@ -187,7 +170,7 @@ Performing a cesarean section is trivial for the remote surgery to carry out. $a
 		<<set _incubated = 1>>
 	<</if>>
 
-	<<if _cToNursery == _curBabies && _cToNursery > 0>>
+	<<if _cToNursery == _curBabies>>
 		taken to $nurseryName.
 		<<set _nursed = 2>>
 	<<elseif _cToNursery < _curBabies && _cToNursery > 0>>
diff --git a/src/pregmod/sePlayerBirth.tw b/src/pregmod/sePlayerBirth.tw
index 0078a256926..2ecdfed62ff 100644
--- a/src/pregmod/sePlayerBirth.tw
+++ b/src/pregmod/sePlayerBirth.tw
@@ -473,10 +473,10 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 			looks nothing like you; it's hard to believe <<if _gender == "XX">>she's your daughter<<else>>he's you son<</if>>
 		<</if>>
 
-		<<if $PC.reservedChildren > 0>>
+		<<if $PC.curBabies[0].reserve === "incubator">>
 			You set <<if _gender == "XX">>her<<else>>him<</if>> aside for incubation.
 			<<include "Incubator Workaround">>
-		<<elseif $PC.reservedChildrenNursery > 0>>
+		<<elseif $PC.curBabies[0].reserve === "nursery">>
 			You set <<if _gender == "XX">>her<<else>>him<</if>> aside for incubation.
 			<<include "Nursery Workaround">>
 		<</if>>
@@ -520,13 +520,13 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 				<<include "Incubator Workaround">>
 				<<run $PC.curBabies.splice($PC.curBabies[_p], 1)>>
 				<<set _p--, _curBabies-->>
-				<<set $PC.reservedChildren-- >>
+				<<set $PC.reservedChildren-->>
 			<<elseif $PC.curBabies[_p].reserve == "incubator">>
 				You set <<if $PC.curBabies[_p].genetics.gender == "XX">>her<<else>>him<</if>> aside for incubation.
 				<<include "Nursery Workaround">>
 				<<run $PC.curBabies.splice($PC.curBabies[_p], 1)>>
 				<<set _p--, _curBabies-->>
-				<<set $PC.reservedChildrenNursery-- >>
+				<<set $PC.reservedChildrenNursery-->>
 			<</if>>
 		<</for>>
 
diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
index 5668b7e369b..439f7091816 100644
--- a/src/pregmod/widgets/seBirthWidgets.tw
+++ b/src/pregmod/widgets/seBirthWidgets.tw
@@ -866,12 +866,12 @@ All in all,
 				<<set $activeSlave = applyGenetics($slaves[$i], $slaves[$i].curBabies[_cb])>>
 				<<include "Incubator Workaround">>
 				<<run $slaves[$i].curBabies.splice($slaves[$i].curBabies[_cb], 1)>>
-				<<set _cb-->>
+				<<set _cb--, _curBabies-->>
 			<<elseif $slaves[$i].curBabies[_cb].reserve == "nursery">>
 				<<set $activeSlave = applyGenetics($slaves[$i], $slaves[$i].curBabies[_cb])>>
 				<<include "Nursery Workaround">>
 				<<run $slaves[$i].curBabies.splice($slaves[$i].curBabies[_cb], 1)>>
-				<<set _cb-->>
+				<<set _cb--, _curBabies-->>
 			<</if>>
 		<</for>>
 	<</if>>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 0adb1e89b51..74bda916a1f 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -1352,49 +1352,52 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1
 </span>
 <<set $reservedChildren = FetusGlobalReserveCount("incubator")>>
 <<set $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
-<<set $activeSlave.reservedChildren = WombReserveCount($activeSlave, "incubator")>>
-<<set $activeSlave.reservedChildrenNursery = WombReserveCount($activeSlave, "nursery")>>
+<<set _reservedIncubator = WombReserveCount($activeSlave, "incubator")>>
+<<set _reservedNursery = WombReserveCount($activeSlave, "nursery")>>
+<<set _WL = $activeSlave.womb.length>>
+<<set $activeSlave.reservedChildren = _reservedIncubator>> /* should be removed eventually, for now keep updated */
+<<set $activeSlave.reservedChildrenNursery = _reservedNursery>> /* should be removed eventually, for now keep updated */
 
 <<if $incubator > 0>>
 <<if $activeSlave.preg > 0 && $activeSlave.broodmother == 0 && $activeSlave.pregKnown == 1 && $activeSlave.eggType == "human">>
 <<if $activeSlave.assignment == "work in the dairy" && $dairyPregSetting > 0>>
 <<else>>
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
-	<<if $activeSlave.pregType - $activeSlave.reservedChildrenNursery == 0>>
+	<<if _WL - _reservedNursery == 0>>
 		//$His children are already reserved for $nurseryName//
 	<<else>>
 		<<set $freeTanks = ($incubator-$tanks.length)>>
-		<<if $activeSlave.reservedChildren > 0>>
-			<<if $activeSlave.pregType == 1>>
+		<<if _reservedIncubator > 0>>
+			<<if _WL == 1>>
 				$His child will be placed in $incubatorName.
-			<<elseif $activeSlave.reservedChildren < $activeSlave.pregType>>
-				$activeSlave.reservedChildren of $his children will be placed in $incubatorName.
-			<<elseif $activeSlave.pregType == 2>>
+			<<elseif _reservedIncubator < _WL>>
+				_reservedIncubator of $his children will be placed in $incubatorName.
+			<<elseif _WL == 2>>
 				Both of $his children will be placed in $incubatorName.
 			<<else>>
-				All $activeSlave.reservedChildren of $his children will be placed in $incubatorName.
+				All _reservedIncubator of $his children will be placed in $incubatorName.
 			<</if>>
-			<<if ($activeSlave.reservedChildren + $activeSlave.reservedChildrenNursery < $activeSlave.pregType) && ($reservedChildren < $freeTanks)>>
+			<<if (_reservedIncubator + _reservedNursery < _WL) && ($reservedChildren < $freeTanks)>>
 				<<link "Keep another child" "Slave Interact">><<set WombAddToGenericReserve($activeSlave, "incubator", 1)>><</link>>
-				<<if $activeSlave.reservedChildren > 0>>
+				<<if _reservedIncubator > 0>>
 					| <<link "Keep one less child" "Slave Interact">><<set WombCleanGenericReserve($activeSlave, "incubator", 1)>><</link>>
 				<</if>>
-				<<if $activeSlave.reservedChildren > 1>>
+				<<if _reservedIncubator > 1>>
 					| <<link "Keep none of $his children" "Slave Interact">><<set WombCleanGenericReserve($activeSlave, "incubator", 9999)>><</link>>
 				<</if>>
-				<<if ($reservedChildren + $activeSlave.pregType - $activeSlave.reservedChildren) <= $freeTanks>>
+				<<if ($reservedChildren + _WL - _reservedIncubator) <= $freeTanks>>
 					| <<link "Keep the rest of $his children" "Slave Interact">><<set WombAddToGenericReserve($activeSlave, "incubator", 9999)>><</link>>
 				<</if>>
-			<<elseif ($activeSlave.reservedChildren == $activeSlave.pregType) || ($reservedChildren == $freeTanks) || ($activeSlave.reservedChildren - $activeSlave.reservedChildrenNursery >= 0)>>
+			<<elseif (_reservedIncubator == _WL) || ($reservedChildren == $freeTanks) || (_reservedIncubator - _reservedNursery >= 0)>>
 				<<link "Keep one less child" "Slave Interact">><<set WombCleanGenericReserve($activeSlave, "incubator", 1)>><</link>>
-				<<if $activeSlave.reservedChildren > 1>>
+				<<if _reservedIncubator > 1>>
 					| <<link "Keep none of $his children" "Slave Interact">><<set WombCleanGenericReserve($activeSlave, "incubator", 9999)>><</link>>
 				<</if>>
 			<</if>>
 		<<elseif $reservedChildren < $freeTanks>>
 			$He is pregnant and you have <<if $freeTanks == 1>>an<</if>> @@.lime;available aging tank<<if $freeTanks > 1>>s<</if>>.@@
-			<<print "[[Keep "+ (($activeSlave.pregType > 1) ? "a" : "the") +" child|Slave Interact][WombAddToGenericReserve($activeSlave, 'incubator', 1)]]">>
-			<<if ($activeSlave.pregType > 1) && ($reservedChildren + $activeSlave.pregType) <= $freeTanks>>
+			<<print "[[Keep "+ ((_WL > 1) ? "a" : "the") +" child|Slave Interact][WombAddToGenericReserve($activeSlave, 'incubator', 1)]]">>
+			<<if (_WL > 1) && ($reservedChildren + _WL) <= $freeTanks>>
 				| <<link "Keep all of $his children" "Slave Interact">><<set WombAddToGenericReserve($activeSlave, "incubator", 9999)>><</link>>
 			<</if>>
 		<<elseif $reservedChildren == $freeTanks>>
@@ -1410,42 +1413,42 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1
 <<if $activeSlave.assignment == "work in the dairy" && $dairyPregSetting > 0>>
 <<else>>
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
-	<<if $activeSlave.pregType - $activeSlave.reservedChildren == 0>>
+	<<if _WL - _reservedIncubator == 0>>
 		<<set $reservedChildren = 0>>
 		//$His children are already reserved for $incubatorName//
 	<<else>>
 		<<set $freeCribs = ($nursery-$cribs.length)>>
-		<<if $activeSlave.reservedChildrenNursery > 0>>
-			<<if $activeSlave.pregType == 1>>
+		<<if _reservedNursery > 0>>
+			<<if _WL == 1>>
 				$His child will be placed in $nurseryName.
-			<<elseif $activeSlave.reservedChildrenNursery < $activeSlave.pregType>>
-				$activeSlave.reservedChildrenNursery of $his children will be placed in $nurseryName.
-			<<elseif $activeSlave.pregType == 2>>
+			<<elseif _reservedNursery < _WL>>
+				_reservedNursery of $his children will be placed in $nurseryName.
+			<<elseif _WL == 2>>
 				Both of $his children will be placed in $nurseryName.
 			<<else>>
-				All $activeSlave.reservedChildrenNursery of $his children will be placed in $nurseryName.
+				All _reservedNursery of $his children will be placed in $nurseryName.
 			<</if>>
-			<<if (($activeSlave.reservedChildren + $activeSlave.reservedChildrenNursery < $activeSlave.pregType) && ($reservedChildrenNursery < $freeCribs))>>
+			<<if ((_reservedIncubator + _reservedNursery < _WL) && ($reservedChildrenNursery < $freeCribs))>>
 				<<link "Keep another child" "Slave Interact">><<set WombAddToGenericReserve($activeSlave, "nursery", 1)>><</link>>
-				<<if $activeSlave.reservedChildrenNursery > 0>>
+				<<if _reservedNursery > 0>>
 					| <<link "Keep one less child" "Slave Interact">><<set WombCleanGenericReserve($activeSlave, "nursery", 1)>><</link>>
 				<</if>>
-				<<if $activeSlave.reservedChildrenNursery > 1>>
+				<<if _reservedNursery > 1>>
 					| <<link "Keep none of $his children" "Slave Interact">><<set WombCleanGenericReserve($activeSlave, "nursery", 9999)>><</link>>
 				<</if>>
-				<<if ($reservedChildrenNursery + $activeSlave.pregType - $activeSlave.reservedChildrenNursery) <= $freeCribs>>
+				<<if ($reservedChildrenNursery + _WL - _reservedNursery) <= $freeCribs>>
 					| <<link "Keep the rest of $his children" "Slave Interact">><<set WombAddToGenericReserve($activeSlave, "nursery", 9999)>><</link>>
 				<</if>>
-			<<elseif ($activeSlave.reservedChildrenNursery == $activeSlave.pregType) || ($reservedChildrenNursery == $freeCribs) || ($activeSlave.reservedChildrenNursery - $activeSlave.reservedChildren >= 0)>>
+			<<elseif (_reservedNursery == _WL) || ($reservedChildrenNursery == $freeCribs) || (_reservedNursery - _reservedIncubator >= 0)>>
 				<<link "Keep one less child" "Slave Interact">><<set WombCleanGenericReserve($activeSlave, "nursery", 1)>><</link>>
-				<<if $activeSlave.reservedChildrenNursery > 1>>
+				<<if _reservedNursery > 1>>
 					| <<link "Keep none of $his children" "Slave Interact">><<set WombCleanGenericReserve($activeSlave, "nursery", 9999)>><</link>>
 				<</if>>
 			<</if>>
 		<<elseif $reservedChildrenNursery < $freeCribs>>
 			$He is pregnant and you have <<if $freeCribs == 1>>an<</if>> @@.lime;available room<<if $freeCribs > 1>>s<</if>>.@@
-			<<print "[[Keep "+ (($activeSlave.pregType > 1) ? "a" : "the") +" child|Slave Interact][WombAddToGenericReserve($activeSlave, 'nursery', 1)]]">>
-			<<if ($activeSlave.pregType > 1) && ($reservedChildrenNursery + $activeSlave.pregType) <= $freeCribs>>
+			<<print "[[Keep "+ ((_WL > 1) ? "a" : "the") +" child|Slave Interact][WombAddToGenericReserve($activeSlave, 'nursery', 1)]]">>
+			<<if (_WL > 1) && ($reservedChildrenNursery + _WL) <= $freeCribs>>
 				| <<link "Keep all of $his children" "Slave Interact">><<set WombAddToGenericReserve($activeSlave, "nursery", 9999)>><</link>>
 			<</if>>
 		<<elseif $reservedChildrenNursery == $freeCribs>>
-- 
GitLab