diff --git a/src/facilities/surgery/analyzePregnancy.js b/src/facilities/surgery/analyzePregnancy.js index bb4fcd04315ea737a14f25b50e8948393ff9d481..fb33e286902ab8899c7bfebac5d1fbc0e4960f36 100644 --- a/src/facilities/surgery/analyzePregnancy.js +++ b/src/facilities/surgery/analyzePregnancy.js @@ -1,25 +1,190 @@ /** - * - * @param {App.Entity.Fetus} fetus + * @param {App.Entity.SlaveState} mother + * @param {boolean} cheat + * @returns {DocumentFragment} */ +globalThis.analyzePregnancies = function(mother, cheat) { + const el = new DocumentFragment(); + for (let i = 0; i < mother.womb.length; i++) { + el.append(scanFetus(i)); + App.UI.DOM.appendNewElement("hr", el); + } + return el; + + function scanFetus(i) { + const el = new DocumentFragment(); + const fetus = mother.womb[i]; + let linkArray = []; + if (fetus.age >= 2) { + App.UI.DOM.appendNewElement("div", el, `Ova: ${fetus.genetics.name}`); + App.UI.DOM.appendNewElement("div", el, `Age: ${Math.trunc(fetus.age * 1000) / 1000}`); + if (V.geneticMappingUpgrade >= 1) { + App.UI.DOM.appendNewElement("div", el, `Gender: ${fetus.genetics.gender}`); + App.UI.DOM.appendNewElement("div", el, `Father ID: ${fetus.genetics.father}`); + App.UI.DOM.appendNewElement("div", el, `Father Name: ${(fetus.genetics.fatherName) ? fetus.genetics.fatherName : `name not registered`}`); + + App.UI.DOM.appendNewElement("div", el, `Mother ID: ${fetus.genetics.mother}`); + App.UI.DOM.appendNewElement("div", el, `Mother Name: ${(fetus.genetics.motherName) ? fetus.genetics.motherName : `name not registered`}`); + App.UI.DOM.appendNewElement("div", el, `Nationality: ${fetus.genetics.nationality}`); + App.UI.DOM.appendNewElement("div", el, `Race: ${capFirstChar(fetus.genetics.race)}`); + App.UI.DOM.appendNewElement("div", el, `Skin tone: ${capFirstChar(fetus.genetics.skin)}`); + App.UI.DOM.appendNewElement("div", el, `Intelligence index: ${fetus.genetics.intelligence} out of 100`); + App.UI.DOM.appendNewElement("div", el, `Face index: ${fetus.genetics.face} out of 100`); + App.UI.DOM.appendNewElement("div", el, `Eye Color: ${capFirstChar(fetus.genetics.eyeColor)}`); + App.UI.DOM.appendNewElement("div", el, `Hair Color: ${capFirstChar(fetus.genetics.hColor)}`); + + if (fetus.genetics.underArmHStyle === "hairless" && fetus.genetics.pubicHStyle === "hairless") { + App.UI.DOM.appendNewElement("div", el, `Body hair: None`); + } else if (fetus.genetics.underArmHStyle === "hairless") { + App.UI.DOM.appendNewElement("div", el, `Body hair: Lacks underarm hair`); + } else if (fetus.genetics.pubicHStyle === "hairless") { + App.UI.DOM.appendNewElement("div", el, `Body hair: Lacks pubic hair`); + } + if (fetus.genetics.markings === "freckles" || fetus.genetics.markings === "heavily freckled") { + App.UI.DOM.appendNewElement("div", el, `Markings: ${capFirstChar(fetus.genetics.markings)}`); + } + el.append(fetusAbnormalities()); + } else { + if (fetus.age > 13) { + App.UI.DOM.appendNewElement("div", el, `Gender: ${fetus.genetics.gender}`); + } + if (fetus.age > 5) { + App.UI.DOM.appendNewElement("div", el, `Father ID: ${fetus.genetics.father}`); + App.UI.DOM.appendNewElement("div", el, `Father Name: ${fetus.genetics.fatherName}`); + App.UI.DOM.appendNewElement("div", el, `Mother ID: ${fetus.genetics.mother}`); + App.UI.DOM.appendNewElement("div", el, `Mother Name: ${fetus.genetics.motherName}`); + } + } + if (V.incubator.capacity > 0 || V.nursery > 0) { + App.UI.DOM.appendNewElement("div", el, `Reserved: ${fetus.reserve}`); + } + + App.UI.DOM.appendNewElement("div", el, `Rename: `) + .append(App.UI.DOM.makeTextBox( + fetus.genetics.name, + (v) => fetus.genetics.name = v + )); + if (fetus.age < 4 && (V.arcologies[0].FSRestart === "unset" || V.eugenicsFullControl === 1 || mother.breedingMark === 0 || V.propOutcome === 0 || (fetus.fatherID !== -1 && fetus.fatherID !== -6))) { + linkArray.push(App.UI.DOM.link( + "Terminate ovum", + () => { + WombRemoveFetus(mother, i); + if (mother.preg === 0) { + mother.pregWeek = -1; + } + } + )); + if (V.surgeryUpgrade === 1) { + linkArray.push(App.UI.DOM.link( + "Transplant ovum", + () => { + V.donatrix = mother; + V.wombIndex = i; + V.nextLink = "Analyze Pregnancy"; + }, + [], + "Ova Transplant Workaround" + )); + } + App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray)); + } + if (V.incubator.capacity > 0) { + if (fetus.reserve === "incubator") { + App.UI.DOM.appendNewElement("div", el, App.UI.DOM.link( + `Don't keep this child in ${V.incubator.name}`, + () => { + fetus.reserve = ""; + }, + [], + passage() + )); + } else if ((V.incubator.capacity - V.incubator.tanks.length) - FetusGlobalReserveCount("incubator") > 0) { + App.UI.DOM.appendNewElement("div", el, App.UI.DOM.link( + `Keep this child in ${V.incubator.name}`, + () => { + fetus.reserve = "incubator"; + }, + [], + passage() + )); + } else { + App.UI.DOM.appendNewElement("div", el, `There is not enough free space to keep this child in ${V.incubator.name}.`); + } + } + if (V.nursery > 0) { + if (fetus.reserve === "nursery") { + App.UI.DOM.appendNewElement("div", el, App.UI.DOM.link( + `Don't keep this child in ${V.nurseryName}`, + () => { + fetus.reserve = ""; + }, + [], + passage() + )); + } else if ((V.nursery - V.cribs.length) - FetusGlobalReserveCount("nursery") > 0) { + App.UI.DOM.appendNewElement("div", el, App.UI.DOM.link( + `Keep this child in ${V.nurseryName}`, + () => { + fetus.reserve = "nursery"; + }, + [], + passage() + )); + } else { + App.UI.DOM.appendNewElement("div", el, `There is not enough free space to keep this child in ${V.nurseryName}.`); + } + } + } else { + linkArray = []; + App.UI.DOM.appendNewElement("div", el, `Unidentified ova found, no detailed data available.`); + App.UI.DOM.appendNewElement("div", el, `Age: too early for scan.`); + linkArray.push(App.UI.DOM.link( + `Terminate ovum`, + () => { + WombRemoveFetus(mother, i); + if (mother.preg === 0) { + mother.pregWeek = -1; + } + }, + [], + passage() + )); -globalThis.fetusAbnormalities = function(fetus) { - const div = App.UI.DOM.makeElement("div", null, "indent"); - - const abnormalitySpans = []; - for (const gene in fetus.genetics.geneticQuirks) { - const geneObj = App.Data.genes.get(gene); - const quirkName = (geneObj && geneObj.abbreviation) ? geneObj.abbreviation : gene; - const quirkColor = (geneObj && geneObj.goodTrait) ? "green" : "red"; - if (fetus.genetics.geneticQuirks[gene] === 2 || typeof fetus.genetics.geneticQuirks[gene] === "string") { // String check is for heterochromia - abnormalitySpans.push(App.UI.DOM.makeElement("span", quirkName, quirkColor)); - } else if (fetus.genetics.geneticQuirks[gene] === 1 && V.geneticMappingUpgrade >= 2) { - abnormalitySpans.push(App.UI.DOM.makeElement("span", quirkName, "yellow")); + if (V.surgeryUpgrade === 1) { + linkArray.push(App.UI.DOM.link( + `Transplant ovum`, + () => { + V.donatrix = mother; + V.wombIndex = i; + V.nextLink = "Analyze Pregnancy"; + }, + [], + `Ova Transplant Workaround` + )); + } + } + return el; + + function fetusAbnormalities() { + const div = App.UI.DOM.makeElement("div", null); + + const abnormalitySpans = []; + for (const gene in fetus.genetics.geneticQuirks) { + const geneObj = App.Data.genes.get(gene); + const quirkName = (geneObj && geneObj.abbreviation) ? geneObj.abbreviation : gene; + const quirkColor = (geneObj && geneObj.goodTrait) ? "green" : "red"; + if (fetus.genetics.geneticQuirks[gene] === 2 || typeof fetus.genetics.geneticQuirks[gene] === "string") { // String check is for heterochromia + abnormalitySpans.push(App.UI.DOM.makeElement("span", quirkName, quirkColor)); + } else if (fetus.genetics.geneticQuirks[gene] === 1 && V.geneticMappingUpgrade >= 2) { + abnormalitySpans.push(App.UI.DOM.makeElement("span", quirkName, "yellow")); + } + } + if (abnormalitySpans.length > 0) { + div.append("Detected abnormalities: "); + App.Events.addNode(div, abnormalitySpans); + } + return div; } } - if (abnormalitySpans.length > 0) { - div.append("Detected abnormalities: "); - App.Events.addNode(div, abnormalitySpans); - } - return div; }; + diff --git a/src/pregmod/analyzePlayerPregnancy.tw b/src/pregmod/analyzePlayerPregnancy.tw index f38748459d2db7adc685d53a12993fd1a20164ba..f833df6172f7e7da4e8d01f7ab35bbc968a16d8c 100644 --- a/src/pregmod/analyzePlayerPregnancy.tw +++ b/src/pregmod/analyzePlayerPregnancy.tw @@ -71,174 +71,6 @@ <p> <h2>Deep scan</h2> - <<for _ap = 0; _ap < _WL; _ap++>> - <hr style="margin:0"> - <<capture _ap>> - <<if $PC.womb[_ap].age >=2 >> - <div class="indent"> - Ova: $PC.womb[_ap].genetics.name - </div> - - <<if $geneticMappingUpgrade >= 1>> - <div class="indent"> - Gender: $PC.womb[_ap].genetics.gender - </div> - <div class="indent"> - Father ID: $PC.womb[_ap].genetics.father - </div> - <div class="indent"> - Father Name: - <<if ndef $PC.womb[_ap].genetics.fatherName>> - name not registered - <<else>> - $PC.womb[_ap].genetics.fatherName - <</if>> - </div> - - <div class="indent"> - Mother ID: $PC.womb[_ap].genetics.mother - </div> - <div class="indent"> - Mother Name: - <<if ndef $PC.womb[_ap].genetics.motherName>> - name not registered - <<else>> - $PC.womb[_ap].genetics.motherName - <</if>> - </div> - <div class="indent"> - Nationality: $PC.womb[_ap].genetics.nationality - </div> - <div class="indent"> - Race: $PC.womb[_ap].genetics.race - </div> - <div class="indent"> - Skin tone: $PC.womb[_ap].genetics.skin - </div> - <div class="indent"> - Intelligence index: $PC.womb[_ap].genetics.intelligence out of 100 - </div> - <div class="indent"> - Face index: $PC.womb[_ap].genetics.face out of 100 - </div> - <div class="indent"> - Eye Color: $PC.womb[_ap].genetics.eyeColor - </div> - <div class="indent"> - Hair Color: $PC.womb[_ap].genetics.hColor - </div> - <<if $PC.womb[_ap].genetics.underArmHStyle == "hairless" && $PC.womb[_ap].genetics.pubicHStyle == "hairless">> - <div class="indent"> - Body hair: none - </div> - <<elseif $PC.womb[_ap].genetics.underArmHStyle == "hairless">> - <div class="indent"> - Body hair: lacks underarm hair - </div> - <<elseif $PC.womb[_ap].genetics.pubicHStyle == "hairless">> - <div class="indent"> - Body hair: lacks pubic hair - </div> - <</if>> - <<if $PC.womb[_ap].genetics.markings == "freckles" || $PC.womb[_ap].genetics.markings == "heavily freckled">> - <div class="indent"> - Markings: $PC.womb[_ap].genetics.markings - </div> - <</if>> - <<includeDOM fetusAbnormalities($PC.womb[_ap])>> - <<else>> - <<if $PC.womb[_ap].age > 13>> - <div class="indent"> - Gender: $PC.womb[_ap].genetics.gender - </div> - <</if>> - <<if $PC.womb[_ap].age > 5>> - <div class="indent"> - Father ID: $PC.womb[_ap].genetics.father - </div> - <div class="indent"> - Father Name: $PC.womb[_ap].genetics.fatherName - </div> - <div class="indent"> - Mother ID: $PC.womb[_ap].genetics.mother - </div> - <div class="indent"> - Mother Name: $PC.womb[_ap].genetics.motherName - </div> - <</if>> - <</if>> - <<if $incubator.capacity > 0 || $nursery > 0>> - <div class="indent"> - Reserved: $PC.womb[_ap].reserve - </div> - <</if>> - - <div class="indent"> - Rename: <<textbox "_tempName" _tempName >> [[Apply | Analyze PC Pregnancy][$PC.womb[_ap].genetics.name = _tempName]] - </div> - <<if $PC.womb[_ap].age < 4 && ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || ($PC.womb[_ap].fatherID != -1 && $PC.womb[_ap].fatherID != -6))>> - <div class="indent"> - <<link "Terminate ovum" "Analyze PC Pregnancy">><<run WombRemoveFetus($PC, _ap)>><</link>> - <<if $surgeryUpgrade == 1>> - | [[Transplant ovum|Ova Transplant Workaround][$donatrix = $PC, $wombIndex = _ap, $nextLink = "Analyze PC Pregnancy"]] - <</if>> - </div> - <</if>> - <<if $incubator.capacity > 0>> - <div class="indent"> - <<if $PC.womb[_ap].reserve === "incubator">> - <<link "Don't keep this child $incubator.name" "Analyze PC Pregnancy">> - <<set $PC.womb[_ap].reserve = "">> - <<set _reservedChildren-->> - <</link>> - <<elseif _freeTanks - _reservedChildren > 0>> - <<link "Keep this child in $incubator.name" "Analyze PC Pregnancy">> - <<if $PC.womb[_ap].reserve === "nursery">> - <<set _reservedChildrenNursery-->> - <</if>> - <<set $PC.womb[_ap].reserve = "incubator">> - <<set _reservedChildren++>> - <</link>> - <<else>> - There is not enough free space to keep this child in <<= $incubator.name>>. - <</if>> - </div> - <</if>> - <<if $nursery > 0>> - <div class="indent"> - <<if $PC.womb[_ap].reserve === "nursery">> - <<link "Don't keep this child in $nurseryName" "Analyze PC Pregnancy">> - <<set $PC.womb[_ap].reserve = "">> - <<set _reservedChildrenNursery-->> - <</link>> - <<elseif _freeCribs - _reservedChildrenNursery > 0>> - <<link "Keep this child in $nurseryName" "Analyze PC Pregnancy">> - <<if $PC.womb[_ap].reserve === "incubator">> - <<set _reservedChildren-->> - <</if>> - <<set $PC.womb[_ap].reserve = "nursery">> - <<set _reservedChildrenNursery++>> - <</link>> - <<else>> - There is not enough free space to keep this child in $nurseryName. - <</if>> - </div> - <</if>> - <<else>> - <div class="indent"> - Unidentified ova found, no detailed data available. - </div> - <div class="indent"> - Age: too early for scan. - </div> - <div class="indent"> - <<link "Terminate ovum" "Analyze PC Pregnancy">><<run WombRemoveFetus($PC, _ap)>><</link>> - <<if $surgeryUpgrade == 1>> - | [[Transplant ovum|Ova Transplant Workaround][$donatrix = $PC, $wombIndex = _ap, $nextLink = "Analyze PC Pregnancy"]] - <</if>> - </div> - <</if>> - <</capture>> - <</for>> + <<includeDOM analyzePregnancies($PC)>> </p> <</if>> diff --git a/src/pregmod/analyzePregnancy.tw b/src/pregmod/analyzePregnancy.tw index 609d75d51a87bcaa7c679cabfa254cc91a75a6dd..79f3582c7d326a1097ae698cfb873a72d2684de1 100644 --- a/src/pregmod/analyzePregnancy.tw +++ b/src/pregmod/analyzePregnancy.tw @@ -9,8 +9,6 @@ <<run App.Utils.setLocalPronouns(getSlave($AS))>> <<set _WL = getSlave($AS).womb.length, _incubatorReservations = WombReserveCount(getSlave($AS), "incubator"), _nurseryReservations = WombReserveCount(getSlave($AS), "nursery"), _freeTanks = $incubator.capacity - $incubator.tanks.length, _freeCribs = $nursery - $cribs.length>> -<<set _reservedChildren = FetusGlobalReserveCount("incubator")>> -<<set _reservedChildrenNursery = FetusGlobalReserveCount("nursery")>> <p class="scene-intro"> <<= getSlave($AS).slaveName>> is <<if getSlave($AS).devotion < 20>>restrained<<else>>comfortably reclined<</if>> with $his stomach prepped for examination. $He shudders slightly at the cold touch of the sensor against $his skin. @@ -67,15 +65,12 @@ <<if _incubatorReservations > 0>> <<link "Remove all of $his children from $incubator.name" "Analyze Pregnancy">> <<run WombChangeReserveType(getSlave($AS), "incubator", "")>> - <<set _reservedChildren -= _incubatorReservations>> <</link>> | <</if>> <<if _incubatorReservations < _WL && (_reservedChildren + _WL - _incubatorReservations <= _freeTanks)>> <<link "Keep all of $his children in $incubator.name" "Analyze Pregnancy">> <<run WombChangeReserveType(getSlave($AS), "nursery", "incubator")>> <<run WombChangeReserveType(getSlave($AS), "", "incubator")>> - <<set _reservedChildrenNursery -= _nurseryReservations>> - <<set _reservedChildren += _WL - _incubatorReservations>> <</link>> <<elseif _incubatorReservations < _WL>> There is not enough free space in <<= $incubator.name>> for the rest of $his children. @@ -88,15 +83,12 @@ <<if _nurseryReservations > 0>> <<link "Remove all of $his children from $nurseryName" "Analyze Pregnancy">> <<run WombChangeReserveType(getSlave($AS), "nursery", "")>> - <<set _reservedChildrenNursery -= _nurseryReservations>> <</link>> | <</if>> - <<if _nurseryReservations < _WL && (_reservedChildrenNursery + _WL - _nurseryReservations <= _freeCribs)>> + <<if _nurseryReservations < _WL && (FetusGlobalReserveCount("nursery") + _WL - _nurseryReservations <= _freeCribs)>> <<link "Keep all of $his children in $nurseryName" "Analyze Pregnancy">> <<run WombChangeReserveType(getSlave($AS), "incubator", "nursery")>> <<run WombChangeReserveType(getSlave($AS), "", "nursery")>> - <<set _reservedChildren -= _incubatorReservations>> - <<set _reservedChildrenNursery += _WL - _nurseryReservations>> <</link>> <<elseif _nurseryReservations < _WL>> There is not enough free space in $nurseryName for the rest of $his children. @@ -108,174 +100,7 @@ <p> <h2>Deep scan</h2> - <<for _ap = 0; _ap < _WL; _ap++>> - <hr style="margin:0"> - <p> - <<capture _ap>> - <<if getSlave($AS).womb[_ap].age >=2 >> - <div class="indent"> - Ova: <<= getSlave($AS).womb[_ap].genetics.name>> - </div> - <div class="indent"> - Age: <<= Math.trunc(getSlave($AS).womb[_ap].age * 1000) / 1000>> - </div> - <<if $geneticMappingUpgrade >= 1>> - <div class="indent"> - Gender: <<= getSlave($AS).womb[_ap].genetics.gender>> - </div> - <div class="indent"> - Father ID: <<= getSlave($AS).womb[_ap].genetics.father>> - </div> - <div class="indent"> - Father Name: - <<if ndef getSlave($AS).womb[_ap].genetics.fatherName>> - name not registered - <<else>> - <<= getSlave($AS).womb[_ap].genetics.fatherName>> - <</if>> - </div> - <div class="indent"> - Mother ID: <<= getSlave($AS).womb[_ap].genetics.mother>> - </div> - <div class="indent"> - Mother Name: - <<if ndef getSlave($AS).womb[_ap].genetics.motherName>> - name not registered - <<else>> - <<= getSlave($AS).womb[_ap].genetics.motherName>> - <</if>> - </div> - <div class="indent"> - Nationality: <<= getSlave($AS).womb[_ap].genetics.nationality>> - </div> - <div class="indent"> - Race: <<= capFirstChar(getSlave($AS).womb[_ap].genetics.race)>> - </div> - <div class="indent"> - Skin tone: <<= capFirstChar(getSlave($AS).womb[_ap].genetics.skin)>> - </div> - <div class="indent"> - Intelligence index: <<= getSlave($AS).womb[_ap].genetics.intelligence>> out of 100 - </div> - <div class="indent"> - Face index: <<= getSlave($AS).womb[_ap].genetics.face>> out of 100 - </div> - <div class="indent"> - Eye Color: <<= capFirstChar(getSlave($AS).womb[_ap].genetics.eyeColor)>> - </div> - <div class="indent"> - Hair Color: <<= capFirstChar(getSlave($AS).womb[_ap].genetics.hColor)>> - </div> - <div class="indent"> - <<if getSlave($AS).womb[_ap].genetics.underArmHStyle == "hairless" && getSlave($AS).womb[_ap].genetics.pubicHStyle == "hairless">> - Body hair: None - <<elseif getSlave($AS).womb[_ap].genetics.underArmHStyle == "hairless">> - Body hair: Lacks underarm hair - <<elseif getSlave($AS).womb[_ap].genetics.pubicHStyle == "hairless">> - Body hair: Lacks pubic hair - <</if>> - </div> - <<if getSlave($AS).womb[_ap].genetics.markings == "freckles" || getSlave($AS).womb[_ap].genetics.markings == "heavily freckled">> - <div class="indent"> - Markings: <<= capFirstChar(getSlave($AS).womb[_ap].genetics.markings)>> - </div> - <</if>> - <<includeDOM fetusAbnormalities(getSlave($AS).womb[_ap])>> - <<else>> - <<if getSlave($AS).womb[_ap].age > 13>> - <div class="indent"> - Gender: <<= getSlave($AS).womb[_ap].genetics.gender>> - </div> - <</if>> - <<if getSlave($AS).womb[_ap].age > 5>> - <div class="indent"> - Father ID: <<= getSlave($AS).womb[_ap].genetics.father>> - </div> - <div class="indent"> - Father Name: <<= getSlave($AS).womb[_ap].genetics.fatherName>> - </div> - <div class="indent"> - Mother ID: <<= getSlave($AS).womb[_ap].genetics.mother>> - </div> - <div class="indent"> - Mother Name: <<= getSlave($AS).womb[_ap].genetics.motherName>> - </div> - <</if>> - <</if>> - <<if $incubator.capacity > 0 || $nursery > 0>> - <div class="indent"> - Reserved: <<= getSlave($AS).womb[_ap].reserve>> - </div> - <</if>> - - <div class="indent"> - Rename: <<textbox "_tempName" _tempName >> [[Apply | Analyze Pregnancy][getSlave($AS).womb[_ap].genetics.name = _tempName]] - </div> - <<if getSlave($AS).womb[_ap].age < 4 && ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || getSlave($AS).breedingMark == 0 || $propOutcome == 0 || (getSlave($AS).womb[_ap].fatherID != -1 && getSlave($AS).womb[_ap].fatherID != -6))>> - <div class="indent"> - <<link "Terminate ovum" "Analyze Pregnancy">><<run WombRemoveFetus(getSlave($AS), _ap)>><<if getSlave($AS).preg == 0>><<set getSlave($AS).pregWeek = -1>><</if>><</link>> - <<if $surgeryUpgrade == 1>> - | [[Transplant ovum|Ova Transplant Workaround][$donatrix = getSlave($AS), $wombIndex = _ap, $nextLink = "Analyze Pregnancy"]] - <</if>> - </div> - <</if>> - <<if $incubator.capacity > 0>> - <div class="indent"> - <<if getSlave($AS).womb[_ap].reserve === "incubator">> - <<link "Don't keep this child in $incubator.name" "Analyze Pregnancy">> - <<set getSlave($AS).womb[_ap].reserve = "">> - <<set _reservedChildren-->> - <</link>> - <<elseif _freeTanks - _reservedChildren > 0>> - <<link "Keep this child in $incubator.name" "Analyze Pregnancy">> - <<if getSlave($AS).womb[_ap].reserve === "nursery">> - <<set _reservedChildrenNursery-->> - <</if>> - <<set getSlave($AS).womb[_ap].reserve = "incubator">> - <<set _reservedChildren++>> - <</link>> - <<else>> - There is not enough free space to keep this child in <<= $incubator.name>>. - <</if>> - </div> - <</if>> - <<if $nursery > 0>> - <div class="indent"> - <<if getSlave($AS).womb[_ap].reserve === "nursery">> - <<link "Don't keep this child in $nurseryName" "Analyze Pregnancy">> - <<set getSlave($AS).womb[_ap].reserve = "">> - <<set _reservedChildrenNursery-->> - <</link>> - <<elseif _freeCribs - _reservedChildrenNursery > 0>> - <<link "Keep this child in $nurseryName" "Analyze Pregnancy">> - <<if getSlave($AS).womb[_ap].reserve === "incubator">> - <<set _reservedChildren-->> - <</if>> - <<set getSlave($AS).womb[_ap].reserve = "nursery">> - <<set _reservedChildrenNursery++>> - <</link>> - <<else>> - There is not enough free space to keep this child in $nurseryName. - <</if>> - </div> - <</if>> - <<else>> - <div class="indent"> - Unidentified ova found, no detailed data available. - </div> - <div class="indent"> - Age: too early for scan. - </div> - <div class="indent"> - <<link "Terminate ovum" "Analyze Pregnancy">><<run WombRemoveFetus(getSlave($AS), _ap)>><<if getSlave($AS).preg == 0>><<set getSlave($AS).pregWeek = -1>><</if>><</link>> - <<if $surgeryUpgrade == 1>> - | [[Transplant ovum|Ova Transplant Workaround][$donatrix = getSlave($AS), $wombIndex = _ap, $nextLink = "Analyze Pregnancy"]] - <</if>> - </div> - <</if>> - <</capture>> - </p> - <</for>> + <<includeDOM analyzePregnancies(getSlave($AS))>> </p> <<elseif getSlave($AS).preg == -3>> /*special states*/ Failure to locate any ova. Subject is infertile.