diff --git a/js/birth/birth.js b/js/birth/birth.js index 48ccb9789fa5f1834b045a1bd5f6f31163290e6b..370e2c918245fc34a669a2154670fb23e3e0d464 100644 --- a/js/birth/birth.js +++ b/js/birth/birth.js @@ -1,4 +1,255 @@ globalThis.birth = function() { + const el = new DocumentFragment(); + let humiliation; + let suddenBirth; + let seed; + let csec; + let slaveDead; + let birthed; + let birthDamage; + let _newMother; + let dispositionId; + if (V.legendaryWombID !== 0) { + V.legendaryWombID = 0; + } + for (const slave of V.slaves) { + const slaveReport = document.createElement("p"); + + if (slave.labor === 1) { + if (!slave.counter.laborCount) { + slave.counter.laborCount = 0; + if (slave.counter.birthsTotal > 0 && slave.counter.laborCount === 0) { + slave.counter.laborCount = slave.counter.birthsTotal; // we do not have a way to know multiples birth count for backward compatibility code. :( + } + } + dispositionId = _.uniqueId('babyDisposition-'); + slaveReport.append(`Birth report: `); + App.UI.DOM.appendNewElement("span", slaveReport, SlaveFullName(slave), "coral"); + + //<br> + sePrebirthCheck(slave); + //<<seBirthPreScene>> + if (V.slaveDead !== 1) { + //<<seBirthCalc>> + //<<seBirthMainScene>> + //<<seBirthBabies>> + //<<seBirthPostpartum>> + slave.counter.laborCount++; + //<<seBirthCritical>> + } else { + removeSlave(slave); + V.slaveDead = 0; + } + //<br><br><hr style="margin:0"><br> + } + } + + V.reservedChildren = FetusGlobalReserveCount("incubator"); + V.reservedChildrenNursery = FetusGlobalReserveCount("nursery"); + + V.birthee = 0; + V.birthed = 0; + + function sePrebirthCheck(slave) { + humiliation = 0; + suddenBirth = 1; + seed = random(1, 100); + csec = 0; + slaveDead = 0; + birthed = 1; + birthDamage = 0; + _newMother = 0; + + /* birth complications calcs */ + if (slave.counter.laborCount === 0 && slave.counter.birthsTotal === 0) { + V.birthDamage += 2; + _newMother = 1; + } + if (slave.mpreg === 1) { + if (slave.anus < 2) { + V.birthDamage += 3; + } + } else { + if (slave.vagina < 2) { + V.birthDamage += 3; + } + if (slave.vaginaLube === 0) { + V.birthDamage += 1; + } + } + if (slave.hips < 0) { + V.birthDamage += (2 - slave.hips); + } + if (slave.weight <= -95) { + V.birthDamage += 7; + } else if (slave.weight <= -30) { + V.birthDamage += 5; + } + if (slave.health.condition < -20) { + V.birthDamage += (4 - (slave.health.condition / 10)); + } + if (slave.health.illness >= 3) { + V.birthDamage += slave.health.illness; + } + if (slave.physicalAge < 6) { + V.birthDamage += 5; + } else if (slave.physicalAge < 9) { + V.birthDamage += 3; + } else if (slave.physicalAge < 13) { + V.birthDamage += 1; + } + if (slave.health.tired > 80) { + V.birthDamage += 20; + } else if (slave.health.tired > 50) { + V.birthDamage += 2; + } + if (slave.muscles < -95) { + V.birthDamage += 30; + } else if (slave.muscles < -30) { + V.birthDamage += 4; + } else if (slave.muscles < -5) { + V.birthDamage += 2; + } + if (slave.preg >= slave.pregData.normalBirth * 1.5) { + /* better get her a c-sec*/ + if (slave.physicalAge < 6) { + V.birthDamage += 50; + } else if (slave.physicalAge < 9) { + V.birthDamage += 30; + } else if (slave.physicalAge < 13) { + V.birthDamage += 20; + } + if (slave.hips < 0) { + V.birthDamage += (20 - slave.hips); + } + } else if (slave.preg > slave.pregData.normalBirth * 1.25) { + if (slave.physicalAge < 6) { + V.birthDamage += 10; + } else if (slave.physicalAge < 9) { + V.birthDamage += 6; + } else { + V.birthDamage += 2; + } + if (slave.hips < 0) { + V.birthDamage += (2 - slave.hips); + } + } + if (slave.wombImplant === "restraint") { + V.birthDamage += 2; + } + if (slave.mpreg !== 1) { + if (slave.vaginaLube > 0) { + V.birthDamage -= slave.vaginaLube; + } + } + if (slave.counter.laborCount > 0 || slave.counter.birthsTotal !== 0) { + V.birthDamage -= 3; + } + if (slave.hips > 0) { + V.birthDamage -= slave.hips; + } + if (slave.pregAdaptation >= 1000) { + V.birthDamage -= 10; + } else if (slave.pregAdaptation >= 500) { + V.birthDamage -= 3; + } else if (slave.pregAdaptation >= 100) { + V.birthDamage -= 1; + } + if (slave.curatives > 0) { + V.birthDamage -= 3; + } + if (slave.geneticQuirks.uterineHypersensitivity === 2) { + V.birthDamage -= 5; + } + if (setup.nurseCareers.includes(slave.career) && slave.fetish !== "mindbroken" && slave.muscles >= -95) { + V.birthDamage = 0; + } else if (slave.intelligenceImplant >= 15) { + V.birthDamage -= 2; + } + + /* early birth calcs */ + if (slave.induce === 1) { + V.suddenBirth += 20; + } + if (!canMove(slave)) { + V.suddenBirth += 10; + } else if (!canWalk(slave)) { + if (slave.rules.mobility === "permissive") { + V.suddenBirth += 3; + } else { + V.suddenBirth += 5; + } + } + if (slave.fetish === "mindbroken") { + V.suddenBirth += 18; + } + if (slave.fetish === "humiliation") { + V.suddenBirth += 1 + slave.fetishStrength / 25; + } + if (slave.weight > 190) { + V.suddenBirth += 10; + } else if (slave.weight > 160) { + V.suddenBirth += 4; + } else if (slave.weight > 130) { + V.suddenBirth += 2; + } else if (slave.weight > 95) { + V.suddenBirth += 1; + } + if (slave.muscles < -95) { + V.suddenBirth += 20; + } else if (slave.muscles < -30) { + V.suddenBirth += 4; + } else if (slave.muscles < -5) { + V.suddenBirth += 1; + } + if (slave.pregAdaptation >= 1000) { + V.suddenBirth += 20; + // baby's ready, giving birth right now + } else if (slave.pregAdaptation >= 500) { + V.suddenBirth += 3; + } else if (slave.pregAdaptation >= 100) { + V.suddenBirth += 1; + } + if (slave.health.condition < 0) { + V.suddenBirth += 2; + } + if (slave.heels === 1) { + V.suddenBirth += 3; + } + if (slave.boobs > 40000) { + V.suddenBirth += 3; + } else if (slave.boobs > 20000) { + V.suddenBirth += 1; + } + if (slave.butt > 6) { + V.suddenBirth += 1; + } + if (slave.dick >= 6) { + V.suddenBirth += 1; + } + if (slave.balls >= 6) { + V.suddenBirth += 1; + } + if (slave.shoes === "extreme heels") { + V.suddenBirth += 2; + } + if (slave.geneticQuirks.uterineHypersensitivity === 2) { + V.suddenBirth += 1 * slave.counter.birthsTotal; + } + if (slave.mpreg !== 1) { + if (slave.vagina > 2) { + V.suddenBirth += 2; + } + if (slave.vaginalAccessory !== "none" || slave.chastityVagina === 1) { + V.suddenBirth -= 20; + } + } + V.suddenBirth -= Math.trunc((slave.intelligence + slave.intelligenceImplant) / 10); + /* end calcs */ + } + +}; +globalThis.birth2 = function() { const p = document.createElement("p"); let r = []; diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw index 1fd091c6899123a7e12bae52342f49276df7393d..71c293057c5db24a2246ed401f3045ec997de38d 100644 --- a/src/pregmod/widgets/seBirthWidgets.tw +++ b/src/pregmod/widgets/seBirthWidgets.tw @@ -2,201 +2,6 @@ <<widget "seBirthPreCheck">> -<<setLocalPronouns $slaves[$i]>> - -<<set $humiliation = 0>> -<<set $suddenBirth = 1>> -<<set $seed = random(1,100)>> -<<set $csec = 0>> -<<set $slaveDead = 0>> -<<set $birthed = 1>> -<<set $birthDamage = 0>> -<<set _newMother = 0>> - -/* birth complications calcs */ -<<if $slaves[$i].counter.laborCount == 0 && $slaves[$i].counter.birthsTotal == 0>> - <<set $birthDamage += 2>> - <<set _newMother = 1>> -<</if>> -<<if $slaves[$i].mpreg == 1>> - <<if $slaves[$i].anus < 2>> - <<set $birthDamage += 3>> - <</if>> -<<else>> - <<if $slaves[$i].vagina < 2>> - <<set $birthDamage += 3>> - <</if>> - <<if $slaves[$i].vaginaLube == 0>> - <<set $birthDamage += 1>> - <</if>> -<</if>> -<<if $slaves[$i].hips < 0>> - <<set $birthDamage += (2-$slaves[$i].hips)>> -<</if>> -<<if $slaves[$i].weight <= -95>> - <<set $birthDamage += 7>> -<<elseif $slaves[$i].weight <= -30>> - <<set $birthDamage += 5>> -<</if>> -<<if $slaves[$i].health.condition < -20>> - <<set $birthDamage += (4-($slaves[$i].health.condition/10))>> -<</if>> -<<if $slaves[$i].health.illness >= 3>> - <<set $birthDamage += $slaves[$i].health.illness>> -<</if>> -<<if $slaves[$i].physicalAge < 6>> - <<set $birthDamage += 5>> -<<elseif $slaves[$i].physicalAge < 9>> - <<set $birthDamage += 3>> -<<elseif $slaves[$i].physicalAge < 13>> - <<set $birthDamage += 1>> -<</if>> -<<if $slaves[$i].health.tired > 80>> - <<set $birthDamage += 20>> -<<elseif $slaves[$i].health.tired > 50>> - <<set $birthDamage += 2>> -<</if>> -<<if $slaves[$i].muscles < -95>> - <<set $birthDamage += 30>> -<<elseif $slaves[$i].muscles < -30>> - <<set $birthDamage += 4>> -<<elseif $slaves[$i].muscles < -5>> - <<set $birthDamage += 2>> -<</if>> -<<if $slaves[$i].preg >= $slaves[$i].pregData.normalBirth*1.5>> /* better get her a c-sec*/ - <<if $slaves[$i].physicalAge < 6>> - <<set $birthDamage += 50>> - <<elseif $slaves[$i].physicalAge < 9>> - <<set $birthDamage += 30>> - <<elseif $slaves[$i].physicalAge < 13>> - <<set $birthDamage += 20>> - <</if>> - <<if $slaves[$i].hips < 0>> - <<set $birthDamage += (20-$slaves[$i].hips)>> - <</if>> -<<elseif $slaves[$i].preg > $slaves[$i].pregData.normalBirth*1.25>> - <<if $slaves[$i].physicalAge < 6>> - <<set $birthDamage += 10>> - <<elseif $slaves[$i].physicalAge < 9>> - <<set $birthDamage += 6>> - <<else>> - <<set $birthDamage += 2>> - <</if>> - <<if $slaves[$i].hips < 0>> - <<set $birthDamage += (2-$slaves[$i].hips)>> - <</if>> -<</if>> -<<if $slaves[$i].wombImplant == "restraint">> - <<set $birthDamage += 2>> -<</if>> -<<if $slaves[$i].mpreg != 1>> - <<if $slaves[$i].vaginaLube > 0>> - <<set $birthDamage -= $slaves[$i].vaginaLube>> - <</if>> -<</if>> -<<if $slaves[$i].counter.laborCount > 0 || $slaves[$i].counter.birthsTotal != 0>> - <<set $birthDamage -= 3>> -<</if>> -<<if $slaves[$i].hips > 0>> - <<set $birthDamage -= $slaves[$i].hips>> -<</if>> -<<if $slaves[$i].pregAdaptation >= 1000>> - <<set $birthDamage -= 10>> -<<elseif $slaves[$i].pregAdaptation >= 500>> - <<set $birthDamage -= 3>> -<<elseif $slaves[$i].pregAdaptation >= 100>> - <<set $birthDamage -= 1>> -<</if>> -<<if $slaves[$i].curatives > 0>> - <<set $birthDamage -= 3>> -<</if>> -<<if $slaves[$i].geneticQuirks.uterineHypersensitivity == 2>> - <<set $birthDamage -= 5>> -<</if>> -<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>> - <<set $birthDamage = 0>> -<<elseif $slaves[$i].intelligenceImplant >= 15>> - <<set $birthDamage -= 2>> -<</if>> - -/* early birth calcs */ -<<if $slaves[$i].induce == 1>> - <<set $suddenBirth += 20>> -<</if>> -<<if !canMove($slaves[$i])>> - <<set $suddenBirth += 10>> -<<elseif !canWalk($slaves[$i])>> - <<if $slaves[$i].rules.mobility == "permissive">> - <<set $suddenBirth += 3>> - <<else>> - <<set $suddenBirth += 5>> - <</if>> -<</if>> -<<if $slaves[$i].fetish == "mindbroken">> - <<set $suddenBirth += 18>> -<</if>> -<<if $slaves[$i].fetish == "humiliation">> - <<set $suddenBirth += 1 + $slaves[$i].fetishStrength/25>> -<</if>> -<<if $slaves[$i].weight > 190>> - <<set $suddenBirth += 10>> -<<elseif $slaves[$i].weight > 160>> - <<set $suddenBirth += 4>> -<<elseif $slaves[$i].weight > 130>> - <<set $suddenBirth += 2>> -<<elseif $slaves[$i].weight > 95>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].muscles < -95>> - <<set $suddenBirth += 20>> -<<elseif $slaves[$i].muscles < -30>> - <<set $suddenBirth += 4>> -<<elseif $slaves[$i].muscles < -5>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].pregAdaptation >= 1000>> - <<set $suddenBirth += 20>> /* baby's ready, giving birth right now */ -<<elseif $slaves[$i].pregAdaptation >= 500>> - <<set $suddenBirth += 3>> -<<elseif $slaves[$i].pregAdaptation >= 100>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].health.condition < 0>> - <<set $suddenBirth += 2>> -<</if>> -<<if $slaves[$i].heels == 1>> - <<set $suddenBirth += 3>> -<</if>> -<<if $slaves[$i].boobs > 40000>> - <<set $suddenBirth += 3>> -<<elseif $slaves[$i].boobs > 20000>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].butt > 6>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].dick >= 6>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].balls >= 6>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].shoes == "extreme heels">> - <<set $suddenBirth += 2>> -<</if>> -<<if $slaves[$i].geneticQuirks.uterineHypersensitivity == 2>> - <<set $suddenBirth += 1*$slaves[$i].counter.birthsTotal>> -<</if>> -<<if $slaves[$i].mpreg != 1>> - <<if $slaves[$i].vagina > 2>> - <<set $suddenBirth += 2>> - <</if>> - <<if $slaves[$i].vaginalAccessory != "none" || $slaves[$i].chastityVagina == 1>> - <<set $suddenBirth -= 20>> - <</if>> -<</if>> -<<set $suddenBirth -= Math.trunc(($slaves[$i].intelligence + $slaves[$i].intelligenceImplant)/10)>> -/* end calcs */ <</widget>>