From 2cc29547fad7305da75198b510086f2ff92ffc82 Mon Sep 17 00:00:00 2001 From: pregmodfan <pregmodfan@cock.li> Date: Tue, 20 Feb 2018 23:04:39 +0200 Subject: [PATCH] boomerang slave, and some syntax sugar for new system --- src/js/wombJS.tw | 32 +++++++++++++++++++++ src/pregmod/widgets/seBirthWidgets.tw | 4 +-- src/uncategorized/reBoomerang.tw | 25 ++++++++++++++++ src/uncategorized/slaveAssignmentsReport.tw | 2 +- src/uncategorized/slaveInteract.tw | 4 +-- src/utility/miscWidgets.tw | 4 +-- 6 files changed, 64 insertions(+), 7 deletions(-) diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw index 6493fce9d2f..c48bbbc5153 100644 --- a/src/js/wombJS.tw +++ b/src/js/wombJS.tw @@ -191,3 +191,35 @@ window.WombGetVolume = function(actor) //most code from pregJS.tw with minor ada return wombSize; } +window.WombUpdatePregVars = function(actor) { + + actor.womb.sort(function (a, b){return b.age - a.age}) + if (actor.womb.length > 0) + { + if (actor.preg > 0 && actor.womb[0].age > 0) + { + actor.preg = actor.womb[0].age; + } + + actor.pregType = actor.womb.length; + + actor.bellyPreg = WombGetVolume(actor); + + } + +} + +window.WombMinPreg = function(actor) +{ + actor.womb.sort(function (a, b){return b.age - a.age}) + + return actor.womb[actor.womb.length-1].age; +} + +window.WombMaxPreg = function(actor) +{ + actor.womb.sort(function (a, b){return b.age - a.age}) + + return actor.womb[0].age; +} + diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw index 15ebf9edcf4..9542199f5a7 100644 --- a/src/pregmod/widgets/seBirthWidgets.tw +++ b/src/pregmod/widgets/seBirthWidgets.tw @@ -875,7 +875,7 @@ All in all, <<set WombImpregnate($slaves[$i], 1, $slaves[$i].pregSource, 1)>> <</if>> <<if $slaves[$i].broodmotherCountDown > 0 && $slaves[$i].womb.length > 0>> /*do we really finished?*/ - <<set $slaves[$i].broodmotherCountDown = 38 - $slaves[$i].womb[$slaves[$i].womb.length-1].age >> /*age of most new (small) fetus used to correct guessing of remained time.*/ + <<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i]) >> /*age of most new (small) fetus used to correct guessing of remained time.*/ /*Really, next block can be changed so implant will can remain inside womb turned off indefinitely. With manual extraction in surgery. But for now I leave it as is.*/ <<if $slaves[$i].broodmotherCountDown == 0>> $pronounCap also passed the implant making $object a broodmother alongside the afterbirth. @@ -888,7 +888,7 @@ All in all, <</if>> <</if>> <<elseif $slaves[$i].womb.length > 0>>/* Not broodmother, but still has babies, partial birth case.*/ - <<set $slaves[$i].preg = $slaves[$i].womb[0].age>> /*now we use most advanced remained fetus as base.*/ + <<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>> /*now we use most advanced remained fetus as base.*/ <<set $slaves[$i].pregSource = $slaves[$i].womb[0].fatherID>> /*in such case it's good chance that there is different father also.*/ <<else>> <<set _tmp = lastPregRule($slaves[$i], $defaultRules)>> diff --git a/src/uncategorized/reBoomerang.tw b/src/uncategorized/reBoomerang.tw index 1e0c26c04c2..7aa00e58a68 100644 --- a/src/uncategorized/reBoomerang.tw +++ b/src/uncategorized/reBoomerang.tw @@ -16,6 +16,24 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against <<set $activeSlave.collar = "none", $activeSlave.choosesOwnClothes = 0, $activeSlave.clothes = "no clothing", $activeSlave.buttplug = "none", $activeSlave.vaginalAccessory = "none", $activeSlave.dickAccessory = "none">> <<set $activeSlave.health = random(-40,-25)>> + +/* ------------------ pregnancy setup start here----------------- */ + +<<set WombProgress($activeSlave, _pregWeeks)>> /* In all cases should be done */ +<<set WombUpdatePregVars($activeSlave)>> +<<if $activeSlave.broodmother > 0>> /* Broomother implant is assumed as removed.*/ + <<set $activeSlave.preg = -1, $activeSlave.birthsTotal += WombBirthReady($activeSlave, 37), $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0, $activeSlave.broodmother == 0, $activeSlave.broodmotherFetuses = 0>> + <<set WombFlush($activeSlave)>> +<<elseif WombBirthReady($activeSlave, 40) > 0 >> /* normal birth case, partial birthers not supported*/ + <<set $activeSlave.preg = -1, $activeSlave.birthsTotal += WombBirthReady($activeSlave, 40), $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0>> + <<set WombFlush($activeSlave)>> +<<else>>/* still pregnant slave */ + <<set $activeSlave.preg = WombMaxPreg($activeSlave)>> /*most ready fetus is a base*/ + <<set $activeSlave.pregWeek = WombMaxPreg($activeSlave)>> /*most ready fetus is a base*/ +<</if>> +<<SetBellySize $activeSlave>> /*In any case it's useful to do.*/ + +/* old code, commented out. <<if $activeSlave.broodmother > 0>> <<set $activeSlave.preg = -1, $activeSlave.birthsTotal += $activeSlave.pregType, $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0, $activeSlave.broodmother == 0>> <<SetBellySize $activeSlave>> @@ -28,6 +46,13 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against <</if>> <<SetBellySize $activeSlave>> <</if>> +*/ + +/* ------------------ pregnancy setup end here----------------- + As no broodmother cases in code below, it's no need to setup every case of impregnantion through new system. Backup mechanic will do it for normal pregnancies. +*/ + + <<if ($activeSlave.hStyle != "shaved" && $activeSlave.bald != 1)>> <<if ($activeSlave.hLength < 150)>> <<set $activeSlave.hLength += _weeks>> diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw index 731bdda04ee..671c71182f2 100644 --- a/src/uncategorized/slaveAssignmentsReport.tw +++ b/src/uncategorized/slaveAssignmentsReport.tw @@ -336,7 +336,7 @@ <</if>> <<if $slaves[$i].ovaryAge >= 47>> <<set $slaves[$i].broodmotherOnHold = 1 >> - <<set $slaves[$i].broodmotherCountDown = 38-$slaves[$i].womb[$slaves[$i].womb.length-1].age>> + <<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i])>> <</if>> <</if>> <<set WombProgress($slaves[$i], _pregSpeed)>> diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 4d5ee8af13f..a92531eaaa7 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -1060,7 +1060,7 @@ Contraception: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<prin | [[Give her a cesarean section|csec]] <<elseif ($activeSlave.broodmother > 0)>> <<if $activeSlave.broodmotherOnHold != 1>> - [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-$activeSlave.womb[$activeSlave.womb.length-1].age]] + [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] <</if>> <<if ($activeSlave.preg > 37)>> | [[Induce mass childbirth|BirthStorm]] @@ -1104,7 +1104,7 @@ __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg == -1>><< | [[Give it a cesarean section|csec]] <<elseif ($activeSlave.broodmother > 0)>> <<if $activeSlave.broodmotherOnHold != 1>> - [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-$activeSlave.womb[$activeSlave.womb.length-1].age]] + [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] <</if>> <<if ($activeSlave.preg > 37)>> | [[Induce mass childbirth|BirthStorm]] diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index 29ae0d1fea7..c0b6db37348 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -679,7 +679,7 @@ | [[Give her a cesarean section|csec]] <<elseif ($activeSlave.broodmother > 0)>> <<if $activeSlave.broodmotherOnHold != 1>> - [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-$activeSlave.womb[$activeSlave.womb.length-1].age]] + [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] <</if>> <<if ($activeSlave.preg > 37)>> | [[Induce mass childbirth|BirthStorm]] @@ -723,7 +723,7 @@ | [[Give it a cesarean section|csec]] <<elseif ($activeSlave.broodmother > 0)>> <<if $activeSlave.broodmotherOnHold != 1>> - [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-$activeSlave.womb[$activeSlave.womb.length-1].age]] + [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] <</if>> <<if ($activeSlave.preg > 37)>> | [[Induce mass childbirth|BirthStorm]] -- GitLab