From 7eb74a54c3c01eb8c38a6516c2e35558937f31c8 Mon Sep 17 00:00:00 2001
From: DCoded <dcoded@live.com>
Date: Fri, 5 Oct 2018 10:35:45 -0400
Subject: [PATCH] Logic fixes

---
 src/facilities/nursery/nursery.tw | 8 ++++----
 src/pregmod/incubator.tw          | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/facilities/nursery/nursery.tw b/src/facilities/nursery/nursery.tw
index 8c6dcd7d1f4..7019ad999d0 100644
--- a/src/facilities/nursery/nursery.tw
+++ b/src/facilities/nursery/nursery.tw
@@ -218,7 +218,7 @@ Reserve an eligible mother-to-be's child to be placed in a crib upon birth. Of $
 			<<else>>
 				All $slaves[_u].reservedChildrenNursery of her children will be placed in $nurseryName.
 			<</if>>
-			<<if ($slaves[_u].reservedChildrenNursery < $slaves[_u].pregType) && ($reservedChildrenNursery < $freeCribs)>>
+			<<if ($slaves[_u].reservedChildrenNursery < $slaves[_u].pregType) && ($reservedChildrenNursery < $freeCribs) && ($slaves[_u].reservedChildrenNursery - $slaves[_u].reservedChildren > 0)>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				<<print "[[Keep another child|Nursery][$slaves[" + _u + "].reservedChildrenNursery += 1, $reservedChildrenNursery += 1]]">>
 				<<if $slaves[_u].reservedChildrenNursery > 0>>
@@ -228,9 +228,9 @@ Reserve an eligible mother-to-be's child to be placed in a crib upon birth. Of $
 					| <<print "[[Keep none of her children|Nursery][$reservedChildrenNursery -= $slaves[" + _u + "].reservedChildrenNursery, $slaves[" + _u + "].reservedChildrenNursery = 0]]">>
 				<</if>>
 				<<if ($reservedChildrenNursery + $slaves[_u].pregType - $slaves[_u].reservedChildrenNursery) <= $freeCribs>>
-					| <<print "[[Keep the rest of her children|Nursery][$reservedChildrenNursery += ($slaves[" + _u + "].pregType - $slaves[" + _u + "].reservedChildrenNursery), $slaves[" + _u + "].reservedChildrenNursery += ($slaves[" + _u + "].pregType - $slaves[" + _u + "].reservedChildrenNursery)]]">>
+					| <<print "[[Keep the rest of her children|Nursery][$reservedChildrenNursery += ($slaves[" + _u + "].pregType - $slaves[" + _u + "].reservedChildrenNursery), $slaves[" + _u + "].reservedChildrenNursery += ($slaves[" + _u + "].pregType - $slaves[" + _u + "].reservedChildrenNursery), $slaves[" + _u + "].reservedChildren = 0]]">>
 				<</if>>
-			<<elseif ($slaves[_u].reservedChildrenNursery == $slaves[_u].pregType) || ($reservedChildrenNursery == $freeCribs)>>
+			<<elseif ($slaves[_u].reservedChildrenNursery == $slaves[_u].pregType) || ($reservedChildrenNursery == $freeCribs) || ($slaves[_u].reservedChildrenNursery - $slaves[_u].reservedChildren >= 0)>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				<<print "[[Keep one less child|Nursery][$slaves[" + _u + "].reservedChildrenNursery -= 1, $reservedChildrenNursery -= 1]]">>
 				<<if $slaves[_u].reservedChildrenNursery > 1>>
@@ -242,7 +242,7 @@ Reserve an eligible mother-to-be's child to be placed in a crib upon birth. Of $
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;
 			<<print "[[Keep "+ (($slaves[_u].pregType > 1) ? "a" : "the") +" child|Nursery][$slaves[" + _u + "].reservedChildrenNursery += 1, $reservedChildrenNursery += 1]]">>
 			<<if ($slaves[_u].pregType > 1) && ($reservedChildrenNursery + $slaves[_u].pregType - $slaves[_u].reservedChildrenNursery) <= $freeCribs>>
-				| <<print "[[Keep all of her children|Nursery][$reservedChildrenNursery += $slaves["+ _u + "].pregType, $slaves[" + _u + "].reservedChildrenNursery += $slaves["+ _u +"].pregType]]">>
+				| <<print "[[Keep all of her children|Nursery][$reservedChildrenNursery += $slaves["+ _u + "].pregType, $slaves[" + _u + "].reservedChildrenNursery += $slaves["+ _u +"].pregType, $slaves[" + _u + "].reservedChildren = 0]]">>
 			<</if>>
 		<<elseif $reservedChildrenNursery == $freeCribs>>
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;
diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw
index b055657d3b3..d9e568b8481 100644
--- a/src/pregmod/incubator.tw
+++ b/src/pregmod/incubator.tw
@@ -101,7 +101,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 			<<else>>
 				All $slaves[_u].reservedChildren of her children will be placed in $incubatorName.
 			<</if>>
-			<<if ($slaves[_u].reservedChildren < $slaves[_u].pregType) && ($reservedChildren < $freeTanks)>>
+			<<if ($slaves[_u].reservedChildren < $slaves[_u].pregType) && ($reservedChildren < $freeTanks) && ($slaves[_u].reservedChildren - $slaves[_u].reservedChildrenNursery > 0)>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				<<print "[[Keep another child|Incubator][$slaves[" + _u + "].reservedChildren += 1, $reservedChildren += 1]]">>
 				<<if $slaves[_u].reservedChildren > 0>>
@@ -111,9 +111,9 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 					| <<print "[[Keep none of her children|Incubator][$reservedChildren -= $slaves[" + _u + "].reservedChildren, $slaves[" + _u + "].reservedChildren = 0]]">>
 				<</if>>
 				<<if ($reservedChildren + $slaves[_u].pregType - $slaves[_u].reservedChildren) <= $freeTanks>>
-					| <<print "[[Keep the rest of her children|Incubator][$reservedChildren += ($slaves[" + _u + "].pregType - $slaves[" + _u + "].reservedChildren), $slaves[" + _u + "].reservedChildren += ($slaves[" + _u + "].pregType - $slaves[" + _u + "].reservedChildren)]]">>
+					| <<print "[[Keep the rest of her children|Incubator][$reservedChildren += ($slaves[" + _u + "].pregType - $slaves[" + _u + "].reservedChildren), $slaves[" + _u + "].reservedChildren += ($slaves[" + _u + "].pregType - $slaves[" + _u + "].reservedChildren), $slaves.[" + _u + "].reservedChildrenNursery = 0]]">>
 				<</if>>
-			<<elseif ($slaves[_u].reservedChildren == $slaves[_u].pregType) || ($reservedChildren == $freeTanks)>>
+			<<elseif ($slaves[_u].reservedChildren == $slaves[_u].pregType) || ($reservedChildren == $freeTanks) || ($slaves[_u].reservedChildren - $slave[_u].reservedChildrenNursery >= 0)>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				<<print "[[Keep one less child|Incubator][$slaves[" + _u + "].reservedChildren -= 1, $reservedChildren -= 1]]">>
 				<<if $slaves[_u].reservedChildren > 1>>
@@ -125,7 +125,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;
 			<<print "[[Keep "+ (($slaves[_u].pregType > 1) ? "a" : "the") +" child|Incubator][$slaves[" + _u + "].reservedChildren += 1, $reservedChildren += 1]]">>
 			<<if ($slaves[_u].pregType > 1) && ($reservedChildren + $slaves[_u].pregType - $slaves[_u].reservedChildren) <= $freeTanks>>
-				| <<print "[[Keep all of her children|Incubator][$reservedChildren += $slaves["+ _u + "].pregType, $slaves[" + _u + "].reservedChildren += $slaves["+ _u +"].pregType]]">>
+				| <<print "[[Keep all of her children|Incubator][$reservedChildren += $slaves["+ _u + "].pregType, $slaves[" + _u + "].reservedChildren += $slaves["+ _u +"].pregType, $slaves[" + _u + "].reservedChildrenNursery = 0]]">>
 			<</if>>
 		<<elseif $reservedChildren == $freeTanks>>
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-- 
GitLab