From 05e706812c42d140149807a774ca5f318f6e6ed9 Mon Sep 17 00:00:00 2001
From: kopareigns <kopareigns@gmail.com>
Date: Wed, 21 Nov 2018 00:34:13 -0500
Subject: [PATCH] Possible fix

---
 src/pregmod/widgets/seBirthWidgets.tw | 40 ++++++++++-----------------
 1 file changed, 15 insertions(+), 25 deletions(-)

diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
index fcaf933899d..5668b7e369b 100644
--- a/src/pregmod/widgets/seBirthWidgets.tw
+++ b/src/pregmod/widgets/seBirthWidgets.tw
@@ -844,44 +844,34 @@ All in all,
 /*===============================================================================================*/
 
 <<widget "seBirthBabies">>
-<<set _curBabies = $slaves[$i].curBabies.length, _cToIncub = 0, _origReserve = WombReserveCount($slaves[$i], "incubator"), _cToNursery = 0, _origReserveNursery = WombReserveCount($slaves[$i], "nursery")>> 
+<<set _curBabies = $slaves[$i].curBabies.length, _cToIncub = 0, _cToNursery = 0>> 
+<<for _sebw = 0; _sebw < _curBabies; _sebw++>>
+	<<if $slaves[$i].curBabies[_sebw].reserve === "incubator">>
+		<<set _cToIncub++>>
+	<<elseif $slaves[$i].curBabies[_sebw].reserve === "nursery">>
+		<<set _cToNursery++>>
+	<</if>>
+<</for>>
 
 /* ----------------------- incubator/nursery adding subsection. There is support for broodmothers too. */
 
-<<if (_origReserve > 0 || _origReserveNursery > 0) && _curBabies > 0>> /*Do we need keep child checks?*/
-	<<if _curBabies >= _origReserve>>
-		/*adding normal*/
-		<<set _cToIncub = _origReserve, $slaves[$i].reservedChildren = 0>>
-	<<elseif _curBabies < _origReserve && $slaves[$i].womb.length > 0>>
-		/*broodmother or partial birth, we will wait for next time to get remaining children*/
-		<<set $slaves[$i].reservedChildren -= _curBabies, _cToIncub = _curBabies>>
-	<<else>>
-		/*Stillbirth or something other go wrong. Correcting children count.*/
-		<<set $slaves[$i].reservedChildren = 0, _cToIncub = 0>>
-	<</if>>
-	<<if _curBabies >= _origReserveNursery>>
-		/*adding normal*/
-		<<set _cToNursery = _origReserveNursery, $slaves[$i].reservedChildrenNursery = 0>>
-	<<elseif _curBabies < _origReserveNursery && $slaves[$i].womb.length > 0>>
-		/*broodmother or partial birth, we will wait for next time to get remaining children*/
-		<<set $slaves[$i].reservedChildrenNursery -= _curBabies, _cToNursery = _curBabies>>
-	<<else>>
-		<<set $slaves[$i].reservedChildrenNursery = 0, _cToNursery = _curBabies>>
-	<</if>>
+<<if (_cToIncub + _cToNursery > 0) && _curBabies > 0>> /*Do we need keep child checks?*/
+	<<set $slaves[$i].reservedChildren -= _cToIncub>>
+	<<set $slaves[$i].reservedChildrenNursery -= _cToNursery>>
 	<br><br>
-	Of $his _curBabies child<<if $slaves[$i].pregType > 1>>ren<</if>>, _cToIncub <<if $slaves[$i].reservedChildren > 1>>were<<else>>was<</if>> taken to $incubatorName.
-	<<if _cToIncub > 0 || _cToNursery > 0>>
+	Of $his _curBabies child<<if _curBabies > 1>>ren<</if>>, _cToIncub <<if _curBabies === 1>>was<<else>>were<</if>> taken to $incubatorName<<if $nursery > 0>>, and _cToNursery <<if _cToNursery === 1>>was<<else>>were<</if>> taken to $nurseryName<</if>>.
+	<<if _cToIncub + _cToNursery > 0>>
 		<<for _cb = 0; _cb < _curBabies; _cb++>> /* if there is no reserved children, code in loop will not trigger */
 			<<if $slaves[$i].curBabies[_cb].reserve == "incubator">>
 				<<set $activeSlave = applyGenetics($slaves[$i], $slaves[$i].curBabies[_cb])>>
 				<<include "Incubator Workaround">>
 				<<run $slaves[$i].curBabies.splice($slaves[$i].curBabies[_cb], 1)>>
-				<<set _cb--, _curBabies-->>
+				<<set _cb-->>
 			<<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--, _curBabies-->>
+				<<set _cb-->>
 			<</if>>
 		<</for>>
 	<</if>>
-- 
GitLab