diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw index 7e357a751537aa4ed88f2ffe99c235731850bed3..36847302c5b2cd049d532b34d4f56b6ba2455e2e 100644 --- a/src/js/wombJS.tw +++ b/src/js/wombJS.tw @@ -47,7 +47,7 @@ window.WombInit = function(actor) //Init womb system. { WombImpregnate(actor, actor.pregType, actor.pregSource, actor.preg); } - else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother > 0) //sorry but for already present broodmothers it's impossible to calculate fully, aproximation used. + else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother > 0 && actor.broodmotherOnHold < 1) //sorry but for already present broodmothers it's impossible to calculate fully, aproximation used. { var i, pw = actor.preg, bCount, bLeft; if (pw > 40) @@ -249,6 +249,21 @@ window.WombNormalizePreg = function(actor) { // console.log("New actor: " + actor.slaveName + " ===============" + actor.name); WombInit(actor); + + if (actor.womb.length == 0 && actor.broodmother >= 1) // this is broodmother on hold. + { + actor.pregType = 0; + actor.pregKnown = 0; + + if (actor.preg > 0) + actor.preg = 0; + + if (actor.pregSource > 0) + actor.pregSource = 0; + + if (actor.pregWeek > 0) + actor.pregWeek = 0; + } if (actor.womb.length > 0) { @@ -272,7 +287,7 @@ window.WombNormalizePreg = function(actor) actor.pregType = actor.womb.length; actor.pregSource = actor.womb[0].fatherID; } - else if (actor.womb.length == 0 && actor.broodmother < 1) + else if (actor.womb.length == 0 && actor.broodmother < 1) //not broodmother { // console.log("preg fixing"); actor.pregType = 0; diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw index 7a38d7737b56aa5c9e3275242243c35a0a9b5a08..c5e1543a091039634396622530d9d62b2d8a5781 100644 --- a/src/pregmod/widgets/seBirthWidgets.tw +++ b/src/pregmod/widgets/seBirthWidgets.tw @@ -939,21 +939,11 @@ All in all, <<if $slaves[$i].broodmother > 0 >> <<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>> - <<if $slaves[$i].broodmotherOnHold != 1 && $slaves[$i].womb.length == 0>> /* normally if broodmother is empty and not on hold then implant impregnate her immdiately*/ - <<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 - 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. - <<set $slaves[$i].preg = 0>> - <<set $slaves[$i].pregType = 0>> - <<set $slaves[$i].pregSource = 0>> - <<set $slaves[$i].pregKnown = 0>> - <<set $slaves[$i].pregWeek = -4>> - <<set $slaves[$i].broodmother = 0>> - <</if>> + <<set $slaves[$i].preg = 0>> + <<set $slaves[$i].pregType = 0>> + <<set $slaves[$i].pregSource = 0>> <</if>> <<elseif $slaves[$i].womb.length > 0>>/* Not broodmother, but still has babies, partial birth case.*/ <<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>> /*now we use most advanced remained fetus as base.*/ diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw index 2d298d219bfc23bd37cf325a063b61960f489ca6..bada24f0c06e6df33f5c0c16769a823f4ba32d70 100644 --- a/src/uncategorized/remoteSurgery.tw +++ b/src/uncategorized/remoteSurgery.tw @@ -759,6 +759,16 @@ Work on her sex: <</if>> <</if>> +<<if $permaPregImplant == 1>> + <<if $activeSlave.broodmother >= 1 >> + <<if $activeSlave.womb.length == 0 >> + [[Remove a pregnancy generator|Surgery Degradation][$activeSlave.preg = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0,$activeSlave.pregType = 0,$activeSlave.broodmother = 0,$activeSlave.broodmotherFetuses = 0,$activeSlave.broodmotherOnHold = 0,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "pregRemove"]] + <<else>> + $possessiveCap is pregnant right now, and her broodmother implant can't be safely extracted. + <</if>> + <</if>> +<</if>> + <<if $activeSlave.mpreg == 1>> <<if $activeSlave.preg > 0>> <br> diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw index c97ab48a68c2cd5005e73575980c0e8cdaf96c50..903f40b21d6ca6efc1f8b629412531f036de047d 100644 --- a/src/uncategorized/surgeryDegradation.tw +++ b/src/uncategorized/surgeryDegradation.tw @@ -415,6 +415,24 @@ As the remote surgery's long recovery cycle completes, </span> <</if>> +<<case "pregRemove">> + <<if ($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She is @@.red; filled with despair@@ about missing being swollen with life and rubs her flat belly with sorrow. Only one fact slightly soothes her and allows to remain sane - at least she not become infertile and still can get pregnant naturally. As with all surgery @@.red;her health has been slightly affected.@@ + <<set $activeSlave.trust -= 10>> + <<set $activeSlave.devotion -= 30>> + <<elseif ($activeSlave.devotion > 50)>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She's @@.hotpink;grateful@@ that you allow her body to be free of constant pregnancy stress, and a little nervous about if you will appreciate her enough without such dedication. As with all surgery @@.red;her health has been slightly affected.@@ + <<set $activeSlave.devotion += 4>> + <<elseif ($activeSlave.devotion >= -20)>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She understands the realities of her life as a slave, so it isn't much of a shock. As with all surgery @@.red;her health has been slightly affected.@@ She is @@.gold;sensibly fearful@@ of your total power over her body. + <<set $activeSlave.trust -= 10>> + <<else>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She does not understand the realities of her life as a slave at a core level, so she's @@.mediumorchid;terrified and angry@@ that you can change her boby so radically just at your will. As with all surgery @@.red;her health has been slightly affected.@@ She is @@.gold;sensibly fearful@@ of your total power over her body and her now empty womb. + <<set $activeSlave.trust -= 15>> + <<set $activeSlave.devotion -= 15>> + <</if>> + + <<case "freshOvaries">> <<if $activeSlave.ovaryAge >= 45>> <<if (($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)) || $activeSlave.origin == "She sold herself to you in the hope of someday bearing children.">> diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index 6b226d5415058c1d23a8c00fab84c813cf36e8d5..e830851066fa05b98ad7a204383b6f3167b4956e 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -2359,62 +2359,64 @@ This experience Call as <<SetPregType>> $args[0]: Slave. */ -<<widget "SetPregType">> - <<if $args[0].ID == -1>> - <<if $PC.birthMaster > 0>> /* Predisposed to twins */ - <<if $PC.fertDrugs == 1>> - <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4)>> - <<else>> - <<set $args[0].pregType = either(1, 1, 1, 2, 2, 2, 2, 2, 2, 3)>> - <</if>> - <<if $PC.forcedFertDrugs > 0>> - <<set $args[0].pregType += either(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4)>> - <</if>> - <<else>> - <<if $PC.fertDrugs == 1>> - <<set $args[0].pregType = either(1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4)>> - <<else>> - <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> - <</if>> - <<if $PC.forcedFertDrugs > 0>> - <<set $args[0].pregType += either(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4)>> - <</if>> - <</if>> - <<else>> - <<if $args[0].pregType == 0>> - <<if ($args[0].drugs == "super fertility drugs")>> - <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(20,29)>> +<<widget "SetPregType">> /* IMHO rework is posssible. Can be more interesting to play, if this code will take in account more body conditions - age, fat, food, hormone levels, etc. */ + <<if $args[0].broodmother < 1>> /* Broodmothers should be not processed here. Necessary now.*/ + <<if $args[0].ID == -1>> + <<if $PC.birthMaster > 0>> /* Predisposed to twins */ + <<if $PC.fertDrugs == 1>> + <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4)>> <<else>> - <<set $args[0].pregType = random(10,29)>> + <<set $args[0].pregType = either(1, 1, 1, 2, 2, 2, 2, 2, 2, 3)>> + <</if>> + <<if $PC.forcedFertDrugs > 0>> + <<set $args[0].pregType += either(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4)>> <</if>> <<else>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(10,29)>> + <<if $PC.fertDrugs == 1>> + <<set $args[0].pregType = either(1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4)>> <<else>> - <<set $args[0].pregType = either(3, 4, 4, 4, 5, 5, 6, 10, 11, 20)>> + <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> <</if>> - <</if>> - <<elseif ($args[0].drugs == "fertility drugs")>> - <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(4,5)>> - <<else>> - <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4, 5, 5)>> + <<if $PC.forcedFertDrugs > 0>> + <<set $args[0].pregType += either(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4)>> <</if>> - <<else>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(2,5)>> + <</if>> + <<else>> + <<if $args[0].pregType == 0>> + <<if ($args[0].drugs == "super fertility drugs")>> + <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(20,29)>> + <<else>> + <<set $args[0].pregType = random(10,29)>> + <</if>> + <<else>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(10,29)>> + <<else>> + <<set $args[0].pregType = either(3, 4, 4, 4, 5, 5, 6, 10, 11, 20)>> + <</if>> + <</if>> + <<elseif ($args[0].drugs == "fertility drugs")>> + <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(4,5)>> + <<else>> + <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4, 5, 5)>> + <</if>> + <<else>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(2,5)>> + <<else>> + <<set $args[0].pregType = either(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)>> + <</if>> + <</if>> <<else>> - <<set $args[0].pregType = either(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)>> + <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> <</if>> <</if>> - <<else>> - <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> <</if>> <</if>> - <</if>> <</widget>> /*